先看函数指针
int func2(int x); /* 声明一个函数 */
int (*q2) (int x); /* 声明一个函数指针 */
q2=func2; /* 将func函数的首地址赋给指针f */
int c=(*q2)(3); //3可以为任意实参
上面4句基本说明了函数指针的用法:
函数指针是指向函数的指针,确切的说,是指向特定类型函数的指针(函数与函数指针 类型要匹配)
函数指针用来保存函数首地址,即可以通过该指针访问函数。函数指针相当于取别名。
函数指针可以指向一类函数,而不是一个函数,即可以重新赋值。(见例2)
函数指针不难,只要记住上面黑体字就差不多了,附上两个简单的例子
例1:
#include<stdio.h> int max(int x,int y){ return(x>y?x:y); } void main() { int (*ptr)(int, int); int a,b,c; ptr=max; scanf("%d%d",&a,&b); c=(*ptr)(a,b); printf("a=%d,b=%d,max=%d",a,b,c); }
例2: