c语言如何用指针调用函数 c语言指针的调用

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

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

创新互联建站,专注为中小企业提供官网建设、营销型网站制作、成都响应式网站建设公司、展示型成都网站制作、成都网站建设、外贸营销网站建设等服务,帮助中小企业通过网站体现价值、有效益。帮助企业快速建站、解决网站建设与网站营销推广问题。

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

二楼的那个:

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

也可以写成

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

或者

c=p(a,b);

你说它指向什么?

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

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

#includestdio.h

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 语言中指针函数是如何调用的??

整个程序的目的是对一组数据进行求最大值、最小值或平均值的操作,通过输入的指令进行相应的操作。按照不用函数指针的思路,程序大概会写成这样:(以下为伪代码)

最大值函数{...}

最小值函数{...}

平均值函数{...}

main{

输入d,则调用 最大值函数

输入x,则调用 最小值函数

输入p,则调用平均值函数

}

不过可以发现如下几点:

· 三个函数的参数形式与返回值都是完全一样的

· 按上述方法写代码,每次调用都要写清楚参数,略显啰嗦

所以就使用函数指针来重新改写代码

GetOperation这个函数本身,就是根据输入指令找到对应的 操作函数并作为函数指针返回它,然后main里直接通过函数指针调用,调用代码只需要写一次,而且甚至不用关心这个函数指针代表的到底是哪个函数

这个程序里只有三个对数据的操作所以函数指针的优点不是很明显。假设有多大100种对数据的操作,如果不使用函数指针,就要不停地写if else if else if...,使用函数指针,甚至可以事先建立一个指令字符与操作函数指针的对应列表,运行时直接在列表里搜索抽取,代码就显得干净利索

GetOperation(c)(dbData,iSize)这句话的具体执行操作是:

(下面假设输入了c='d')

首先执行GetOperation('d'),该函数返回得到GetMax(的指针),再执行GetMax(bData,iSize),即对数据求最大值的操作,函数返回得到最大值


分享文章:c语言如何用指针调用函数 c语言指针的调用
URL链接:http://hbruida.cn/article/doiiojg.html