c++指针函数,函数指针,和普通的函数有啥区别
时间: 2024-08-14 13:09:28 浏览: 39
C++中的指针函数、函数指针和普通函数主要有以下几个区别:
1. **内存地址**:
- 普通函数:函数作为独立的实体存储在程序的文本段中,每个函数有自己的地址。
- 函数指针:函数指针是一个变量,它存储的是一个函数的实际地址,可以指向任何一个已知类型的函数。
2. **调用方式**:
- 普通函数:通过函数名直接调用,不需要额外的指针。
- 函数指针:需要通过函数指针来间接调用,通常先获取函数地址,然后解引用后调用。
3. **灵活性**:
- 指针函数:允许动态绑定和延迟计算,即在运行时根据函数指针的内容选择执行哪个函数。
- 普通函数:执行固定的功能,绑定在编译期完成。
4. **类型系统**:
- 普通函数:函数声明会确定其输入参数类型和返回值类型,不能改变。
- 函数指针:可以看作是一种特殊的类型,它的类型由所指向的函数的签名决定。
5. **应用场景**:
- 普通函数:主要用于封装功能,提高代码复用。
- 函数指针:常用于回调机制、事件处理、泛型编程等场景,提供更大的灵活性。
相关问题
c++指针函数和函数指针区别
C语言中的指针函数和函数指针之间有一些区别。指针函数是指返回类型为指针的函数,即函数返回一个指针类型的值。而函数指针是指指向函数的指针,它指向的是函数的地址。
具体来说,指针函数的函数名前面没有指针类型的标志型号“*”,而是在函数的返回类型中指明了返回的是一个指针。例如,一个指针函数的声明可以是:
int* ptrFunc(int a);
而函数指针的函数名前面有一个指针类型的标志型号“*”,它指向函数的地址。函数指针的声明可以是:
int (*funcPtr)(int a);
总结起来,指针函数是一个函数,它返回一个指针类型的值,而函数指针是一个指针,它指向函数的地址。这是指针函数和函数指针之间的主要区别。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [C++ 函数指针和指针函数](https://blog.csdn.net/m0_52902391/article/details/123256785)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *2* *3* [C++笔记 指针函数与函数指针详解](https://blog.csdn.net/weixin_40933653/article/details/124022898)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
C++ 指针函数和函数指针
C中的指针函数和函数指针是两个不同的概念。引用中提到,函数指针的函数名是一个指针,即函数名前面有一个指针类型的标志型号“*”。函数指针的定义形式为`int (*f)(int a, int b)`,表示f是一个指向返回类型为int,参数为int和int的函数的指针。引用指出,函数指针是指向函数的指针,而不是指向普通的基本数据类型或类对象的指针。
而指针函数则是一个返回类型为指针的函数。指针函数的定义形式是:`int* function_name(int a, int b)`,表示function_name是一个返回类型为int指针,参数为int和int的函数。指针函数返回的是一个指针,可以用于指向某个特定的数据类型或对象。
所以,函数指针和指针函数在使用和定义上有明显的区别。函数指针是指向函数的指针,而指针函数是一个返回类型为指针的函数。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [c++ 指针函数与函数指针](https://blog.csdn.net/weixin_40378209/article/details/123982447)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *2* *3* [C++笔记 指针函数与函数指针详解](https://blog.csdn.net/weixin_40933653/article/details/124022898)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]