函数指针和指针函数的区别
时间: 2023-10-12 14:08:45 浏览: 40
函数指针和指针函数是两个不同的概念。
函数指针是指一个指向函数的指针变量,它可以指向一个函数,并且可以通过该指针调用函数。函数指针的声明方式为:`返回类型 (*指针变量名)(参数列表)`。
例如,下面的代码声明了一个指向函数的指针变量,该函数的返回类型为int,参数列表为两个int类型的参数:
```c
int (*p)(int, int);
```
指针函数是指一个返回指针的函数,它可以返回一个指针,该指针可以指向任何类型的数据。指针函数的声明方式为:`返回类型 (*函数名)(参数列表)`。
例如,下面的代码声明了一个指针函数,该函数的返回类型为int*,参数列表为一个int类型的参数:
```c
int* foo(int);
```
因此,函数指针和指针函数是两个不同的概念,它们的声明方式和作用也不同。函数指针可以用来间接调用函数,而指针函数可以用来返回一个指针。
相关问题
函数指针和指针函数区别
函数指针和指针函数的区别在于它们的定义和用法。函数指针是指向函数的指针变量,它的定义形式为int (*fun)(int x, int y),其中fun是函数指针变量的名称。函数指针可以用来存储函数的地址,并且可以通过函数指针调用相应的函数。函数指针的星号是属于函数名的。\[1\]
而指针函数是一个函数,它的返回值是一个指针类型的数据。指针函数的定义形式为int* fun(int x, int y),其中fun是指针函数的名称。指针函数可以像普通函数一样被调用,并且返回一个指针类型的值。指针函数的星号是属于数据类型的。\[1\]\[3\]
简单来说,函数指针是指向函数的指针变量,而指针函数是一个返回指针类型值的函数。函数指针的用法是通过指针调用函数,而指针函数的用法是像普通函数一样调用并返回指针类型的值。\[2\]\[3\]
#### 引用[.reference_title]
- *1* [函数指针和指针函数用法和区别](https://blog.csdn.net/luoyayun361/article/details/80428882)[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^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* [函数指针与指针函数的区别](https://blog.csdn.net/littesss/article/details/77272600)[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^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
- *3* [一招牢记 函数指针和指针函数 的区别](https://blog.csdn.net/qq_20255275/article/details/109820256)[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^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
指针函数和函数指针区别
指针函数和函数指针是两个不同的概念。指针函数是返回指针的函数,而函数指针是指向函数的指针。在指针函数的声明中,*和函数名不需要用括号括起来,而函数指针的声明中,*需要和函数名用括号括起来,这是因为运算符的优先级原因。\[1\]
举个例子来说明区别,假设有一个函数add,它接受两个整数参数并返回它们的和。那么一个指针函数可以这样声明:int *ptrFunc(int, int),它返回一个指向整数的指针。而一个函数指针可以这样声明:int (*funcPtr)(int, int),它指向一个接受两个整数参数并返回整数的函数。\[2\]
总结来说,指针函数是一个函数,它返回指针;而函数指针是一个指针,它指向一个函数。它们的声明和使用方式也有所不同。\[3\]
#### 引用[.reference_title]
- *1* *2* [C语言指针函数和函数指针区别](https://blog.csdn.net/qq_43710979/article/details/88030147)[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^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item]
- *3* [函数指针与指针函数的区别](https://blog.csdn.net/weixin_73233099/article/details/129222324)[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^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]