有关函数指针变量的疑惑,请看看。
程序代码:#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?







