这部分的内容对我一直是个盲区,今天想起来扫雷了,整理了这部分的内容,也希望帮助大家。
1、函数指针
如果在函数中定义了一个函数,在编译时,编译系统为函数代码分配一段存储空间,这段存储空间的起始地址(又称入口地址)称为这个函数的指针。
定义一般函数指针的形式:
类型名 (*指针变量名) (函数参数列表)
例子:int (*p)(int,int);
p是一个指向函数的指针变量。p的类型为:int(*)(int,int)表示。
2、指针函数
指针函数是一个函数,函数都有返回类型(如果不返回值则为无类型值),只不过指针函数返回类型的是某一类型的指针。
定义一般函数指针的形式:
类型名 *函数名 (函数参数列表)
例子:int *p(int,int);等价 (int *) p(int,int);
p是函数名,调用它以后能得到一个int *型(指向整形数据)的指针。
PS:“()” 为初等运算符,优先级高于“*”指针运算符,且“*”运算符是自右往左结合。就变成了 (int *) p(int,int); 其实我觉得只要搞懂了运算符的先后结合顺序,这部本内容也就懂了。