指针函数和函数指针是什么有什么区别
指针函数和函数指针是指针相关的两个概念。
- 指针函数(Pointer to a function):指针函数是一个返回指针的函数。它的声明方式为在函数名前加上 "*",表示该函数返回一个指针。指针函数可以返回指向不同类型的指针,根据具体情况可以返回指向int、char、数组、结构体等不同类型的指针。
示例:
int* add(int a, int b) {
int* result = malloc(sizeof(int));
*result = a + b;
return result;
}
- 函数指针(Pointer to a function):函数指针是指向函数的指针变量。它的声明方式为在变量名前加上 "*”,表示该变量是一个指向函数的指针。函数指针可以指向具有相同参数列表和返回类型的函数,通过函数指针可以调用相应的函数。
示例:
int add(int a, int b) {
return a + b;
}
int (*funcPtr)(int, int) = add;
int result = funcPtr(3, 4);
区别:
- 概念不同:指针函数是一个返回指针的函数,函数指针是指向函数的指针变量。
- 使用方式不同:指针函数可以直接调用获取指针指向的数据,而函数指针需要通过函数指针变量来调用相应的函数。
- 返回类型不同:指针函数返回一个指针,函数指针指向的函数有具体的返回类型。
- 声明方式不同:指针函数在函数名前加 "",函数指针在变量名前加 ""
原文地址: http://www.cveoy.top/t/topic/iOfc 著作权归作者所有。请勿转载和采集!