函数指针和指针函数
参考了@函数指针和指针函数用法和区别_luoyayun361的专栏-CSDN博客_指针函数
指针函数:简单的来说,就是一个返回指针的函数,其本质是一个函数,而该函数的返回值是一个指针。
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(); }
函数指针:其本质是一个指针变量,该指针指向这个函数。总结来说,函数指针就是指向函数的指针。
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(); }
如果你对这两个概念的区分不是很清晰也可以这么记:
指针函数与整型函数一样,都是返回一个东西,不同的是指针函数返回的是一个指针。