好多新人函数指针、指针函数迟迟分不清。实际上,函数指针和指针函数有以下区别:
1.本质:函数指针是指向函数的指针变量,其本质是一个指针,更通俗的说,如果程序中定义了一个函数,编译时系统会为这个函数代码分配一段存储空间,这段存储空间的首地址称为这个函数的地址,函数名表示的就是这个地址。既然是地址我们就可以定义一个指针变量来存放,这个指针变量就叫作函数指针变量,简称函数指针;而指针函数则是一个函数,其本质不是一个指针。
2.参数:函数指针可以调用具有相同参数类型的函数,也可以调用自身;而指针函数则有一个返回值,该返回值是一个地址值,通常需要用同类型的指针变量来接受该地址值。
3.用途:函数指针通常用于调用函数或作为函数的参数;而指针函数则通常用于实现类似数组的栈或链表等动态数据结构,或者用于实现一些需要动态分配内存的数据结构,如树等。
总结来说,函数指针和指针函数在本质、参数和用途上都有所不同,需要根据具体的需求和场景来选择使用。