指针函数(掌握):
- 概念:返回值为指针的函数
- 局部变量的地址(栈)不可以作为函数返回值,因为局部变在函数结束时候已经被系统回收了
- 如果要返回地址,那么可以申请堆内存返回指针堆内存的指针
- c语言内存管理是非常蛋疼的事
- 堆内存的指针不能乱改,改了后会造成内存泄漏
- 堆中的内存在没有释放之前必须要有一个指针指向这一块的内容
- 堆内存的指针可以作为函数返回值
函数指针(掌握):
- 概念:指向函数的指针
- 函数名称本身就是一个指针
- 函数名称+()就是调用函数,
定义函数指针
- 指针所指向的函数返回值类型(*函数指针名称)(形参列表)
- 如:void (*methodP)();
- 赋值:methodP = 原函数名称
- 调用方式:
- methodP();
- (*methodP)();
函数指针的指向可以改变,但必须指向同类型(返回值类型和形参列表都相同)的函数
- 使用场景一:可以把系列性函数保存到指针数组中,通过这个指针数组遍历调用函数,从而实现一系列函数的调用。