有关函数指针变量的疑惑,请看看。
程序代码:
#include<stdio.h> typedef int (*p) int fun(int a) { return(a); } void main() { int b=2; int z; p q; q=fun; //z=(*q)(b) z=q(b); printf("%d\n",z); }就这两句语句都正确//z=(*q)(b)
z=q(b);
但,为什么(*q)(b)和q(b)的效果会是等同的,连调试的参数都是一模一样的?
q=fun;这句只是把函数fun赋值给q这个函数指针变量啊,后面是z=q(b);,输出结果
居然是z的值,难道说调用指针变量q可以直接就执行函数体fun?