高级声明:
int (*f)();
这里声明有两个括号,第二个括号是函数调用,第一个括号是聚组作用。(*f)是一个函数,所以f是指向返回整型的函数的指针。程序中的每个函数都位于,内存中某个位置,所以存在指向那个位置的指针。
int *f[];
下标的优先级高,所以f是个数组,数组中元素为指向int的指针。
int (*f[])()
首先按照优先级进行分析,括号内(*f[])先求值,所以*f[], f是数组,数组元素是指向某种类型的指针,结合外面的看,f是一个数组,数组元素是指向返回int类型的函数的指针。
函数指针:
指针在使用前需要进行初始化,对于函数指针,访问前需要初始化为指向摸个函数。
int fuc(int); int (*fPtr)(int) = &fuc; //在函数初始化之前需要具有fuc的原型,否则,编译器无法检查fuc的类型是否与fPtr一致。
时间: 2024-10-19 18:37:37