c语言指针在调用函数 c语言指针调用函数求平均值

C语言指针在函数调用中的问题

这说明你对指针和函数参数传递的理解不到位

成都创新互联专注为客户提供全方位的互联网综合服务,包含不限于网站建设、成都做网站、乌达网络推广、小程序开发、乌达网络营销、乌达企业策划、乌达品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;成都创新互联为所有大学生创业者提供乌达建站搭建服务,24小时服务热线:028-86922220,官方网址:www.cdcxhl.com

这个程序里你想用函数F改变p,那么就要给F传递p的地址,p的类型是int*,那么它的的地址类型是int**,传递p给F:

int main()

{

void F(int **p);    //int**

int *p=NULL;

F(p);     //传地址

printf("%d",*p);

delete p;    //释放

return 0;

}

void F(int **p)   //int**

{

*p=new int;   

**p=1;

}

或者用C++的引用:

int main()

{

void F(int *p);    //int*

int *p=NULL;

F(p);     //这里就是引用了

printf("%d",*p);

delete p;    //释放

return 0;

}

void F(int *p)   //int*

{

p=new int;   

*p=1;

}

在C语言中,指向函数的指针怎么调用函数?

其实,函数指针确实不是“指向函数的指针”

函数指针,就是函数指针,加不加*没有实际意义。

二楼的那个:

c=(*p)(a,b);

也可以写成

c=(****************************************************p)(a,b);

或者

c=p(a,b);

你说它指向什么?

PS,加*有特殊的用途,初学者就算了

C语言调用函数指针

并不是不规范的问题,你子程序写法只能在子程序中输出正确的数据,而在主函数中无法得到交换过的x和y的值。参考程序运用指针让子程序去读写a和b的值,在子程序执行完成后,a和b的值确实得到了交换。

你的程序中子程序采用的不是指针类型参数,这样子程序无法将交换过后的值传回来。

关于c语言指针调用函数。。。。。。。。

第一条红线是定义一个函数指针;

第二条红线起强转作用,把0xd010f0强转为对应的函数指针类型

我写的这个程序可以帮你理解...常量地址被printab取代~

C语言指针与函数调用

#include stdio.h

#include stdlib.h

int ave(int n,int *a);

int main()

{

int i,n,*a;

printf("please input number n:");

scanf("%d",n);

a=(int *) malloc(n*sizeof(int));

printf("please input %d numbers:\n",n);

for(i=0;in;i++)

scanf("%d",a+i);

printf("The average number is %d\n",ave(n,a));

}

int ave(int n,int *a)

{

int i,sum=0;

for(i=0;in;i++)

sum+=*(a+i);

return sum/n;

}


当前文章:c语言指针在调用函数 c语言指针调用函数求平均值
文章URL:http://scyanting.com/article/hehoge.html