c语言指针在调用函数调用 c语言函数指针调用函数

C语言指向函数的指针的调用

#includestdio.h

成都网络公司-成都网站建设公司创新互联十多年经验成就非凡,专业从事网站设计制作、成都网站建设,成都网页设计,成都网页制作,软文平台1元广告等。十多年来已成功提供全面的成都网站建设方案,打造行业特色的成都网站建设案例,建站热线:18980820575,我们期待您的来电!

int *d_bubblesort(int a[],int n)//数组长度为n的冒泡降序排序

{

int i,j;

int temp;

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

{

for(j=n-1;ji;j--)

{

if(a[j]a[j-1])

{

temp=a[j-1];

a[j-1]=a[j];

a[j]=temp;

}

}

}

return a;

}

void main()

{

int i;

int *p=NULL;

int a[10]={6,5,4,1,2,3,9,8,7,10};

int *(*fun)(int*,int);

fun=d_bubblesort;

p=fun(a,10);

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

{

printf("%d\t",p[i]);

}

}

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

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

这个程序里你想用函数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语言调用函数指针

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

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


名称栏目:c语言指针在调用函数调用 c语言函数指针调用函数
URL网址:http://scyanting.com/article/ddsccgj.html