什么是函数指针?
首先要知道函数指针本质上就是一个指针,既然是指针,那么就得存放地址,整型指针存放的是整型变量的地址,数组指针存放的是数组的地址,那么我们就可以推出函数指针就是来存放函数的地址的。
函数名与&函数名是什么关系?


这里我来打印一下函数的地址,一个是&test,一个是test。
我们发现是一样的,是不是和数组很像,但他们还是有区别的。
数组名是首元素的地址,而取地址数组名则是整个数组的地址。
而函数名和取地址函数名是等价的。
数组名!=&数组名
函数名==&函数名
函数指针的写法
假设有一个函数int Add(int x, int y),我们要把Add的地址存到pf中。
int (*pf)(int , int)=Add
这就是函数指针的写法,

是不是和数组指针很像。
函数指针的用法
我们要把Add函数的返回值放到变量ret中

运行后,两种写法得出的答案是一样的,因为函数名本身就是函数的地址,所以这里Add和pf是等价的,可以直接调用,那么第二种(*pf)的写法可以说是多此一举。
4672

被折叠的 条评论
为什么被折叠?



