函数指针和指针函数
1.函数指针
函数指针是指向函数的指针变量,即本质是一个指针变量。
例如:
int (*f)(int x);
double (*ptr)(double x);
例如
#include <stdio.h> int max(int a,int b) { if(a>b) return a; else return b; } int main() { int(*pmax)(); int x,y,z; pmax=max; printf( "input two numbers:\n"); scanf("%d%d",&x,&y); z=(*pmax)(x,y); printf( "maxmum=%d ",z); return 0; }
2.指针函数
它是一个函数,只不过这个函数的返回值是一个地址值。函数返回值必须用同类型的指针变量来接受,也就是说,指针函数一定有函数返回值,而且,在主调函数中,函数返回值必须赋给同类型的指针变量。
例如,
int func(int x); /* 声明一个函数 */
int (*f) (int x); /* 声明一个函数指针 */
f=func; /* 将func函数的首地址赋给指针f */
例如
#include <stdio.h> int *pmax(int *a,int *b) { if (*a > *b) return a; else return b; } int main() { int x,y,z; printf("input two numbers\n"); scanf("%d%d",&x,&y); z = *pmax(&x,&y); printf("maxmum=%d\n",z); return 0; }