c++函数名本质上就是一个指针,那么单独定义指向函数的指针有什么意义?话说函数指针还没太看懂什么意思

2024年11月23日 08:40
有3个网友回答
网友(1):

函数指针与一般指针并无大的理解上的差别。试想直接使用变量 int i; 与指针变量 int *pi;有什么差别? i 只能用来访问该变量的值,你无法用法其它变量的值。而pi可以指向任何一个整形变量,然后访问它。函数指针的用处也在这,有时候你需要不同的情况调用不同的函数,而这多个函数的接口又是一样的,这个时候你就可以使用函数指针来调用。或者用函数指针实现委托,即程序的主逻辑在框架里,而它只提供了几个口子写你的代码,这几个口子就是函数指针,主逻辑调用你的代码,然后再回去执行它的。
当然,这些都是面向过程的思想。在面向对象里,有类的多态性了。

网友(2):

函数嘛,就是一段代码完成一定的功能
编译以后就是一个函数名对应一个代码的地址
c里边有函数指针
可以通过函数指针调用函数
可以在一定程度上简化代码书写
不过还有一个非常有用的地方就是回调,就是一个函数里通过参数中的函数指针调用外部函数
比如c里边的快速排序,windows程序开发中就更多了

网友(3):

函数指针存储的是函数代码的内存地址

函数名不代表指针,严格来说需要使用 &fun 得到函数地址

只是某些编译器做了简化,可以省略这个 &