关于函数指针

从指针的层次上理解函数——函数的函数名实际上就是一个指针,函数名指向该函数的代码在内存中的首地址

对此,我们写如下代码做测试:

int fun(int a) {
    return a;
}
int main() { 
    cout << fun(22) << endl;
    cout << (*fun)(33) << endl;
}

输出如下:

 

char (*pFun)(int,char);     //定义函数指针 pFun,函数返回值类型为 char, 函数参数为 int,char
char fun(int a, char s){ return s;} 

int main() 
{ 
    pFun = fun;     //或者写为   pFun = *fun;
    cout << (*pFun)(1,'a') << endl; 
    cout << (*fun)(2, 's') << endl;
    cout << pFun(21, 'd') << endl;
    cout << fun(22, 'f') << endl;
}

输出为:

 

 

使用typedef定义函数指针

typedef char (*PTRFUN)(int); 
PTRFUN pFun; 
char glFun(int a){ return 's';} 
int main() 
{ 
    pFun = glFun; 
    cout << pFun(2); 
} 

 

参考链接;https://blog.csdn.net/qll125596718/article/details/6891881

posted @ 2021-01-18 12:17  zeroPatrick  阅读(40)  评论(0编辑  收藏  举报