函数指针和指针函数
参考了@函数指针和指针函数用法和区别luoyayun361的专栏-CSDN博客指针函数
- 指针函数:简单的来说,就是一个返回指针的函数,其本质是一个函数,而该函数的返回值是一个指针。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| int *fun(int x,int y); int * fun(int x,int y); int* fun(int x,int y);
typedef struct _Data{ int a; int b; }Data;
Data* f(int a,int b){ Data * data = new Data; data->a = a; data->b = b; return data; } int main(int argc, char *argv[]) { QApplication a(argc, argv); Data * myData = f(4,5); qDebug() << "f(4,5) = " << myData->a << myData->b; return a.exec(); }
|
- 函数指针:其本质是一个指针变量,该指针指向这个函数。总结来说,函数指针就是指向函数的指针。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| int (*fun)(int x,int y); int add(int x,int y){ return x+y; } int sub(int x,int y){ return x-y; }
int (*fun)(int x,int y); int main(int argc, char *argv[]) { QApplication a(argc, argv); fun = add; qDebug() << "(*fun)(1,2) = " << (*fun)(1,2) ; fun = ⊂ qDebug() << "(*fun)(5,3) = " << (*fun)(5,3) << fun(5,3); return a.exec(); }
|
如果你对这两个概念的区分不是很清晰也可以这么记:
指针函数与整型函数一样,都是返回一个东西,不同的是指针函数返回的是一个指针。