难道说调用指针变量q可以直接就执行函数体fun? 对的。
所谓的函数int fun(int)其实就跟
数组int a[100]
类似,fun指向那样一个函数的地址,a指向数组的地址。
前面的代码中,你声明了一个(int*)(int)指针p的时候就应该清楚这是一个函数指针,指向的函数带有int类型返回值,需要一个int的参数。
int *ptr=a;
数组指针也一样,ptr[i]==a[i],所以
//z=(*q)(b)
z=q(b);
(*q)(b)和q(b)的效果会是等同的,连调试的参数都是一模一样的。
---
q=fun;这句只是把函数fun赋值给q这个函数指针变量啊 换种说法可能更准确,q指向了fun函数,所以对q的操作可以视为对fun函数的操作