#include <stdio.h>char (*pFun) (int);char glFun(int a)
{ return a;
}int main(void)
{
pFun = glFun; // 1、printf("%c\n", pFun('a')); // 2、printf("%c\n", (*pFun)('a'));}1、代码注释中的两种写法的区别在哪?
2、为什么运行结果是一样的?
3、如果没有区别,那种写法好一些(如果有区别请忽略)?
先谢过各位大神了!!!
1 回答
阿波罗的战车
TA贡献1862条经验 获得超6个赞
1. 前者是隐式的,后者是显式,在C中都可以调用指向的函数;这个跟pFun = &glFun类似。
2. 因为调用了指向的函数地址,当然返回的结果是一样的。
3. 后者写法规范一些,让人和编译器立刻能知道这是一个函数指针变量在调用对应的函数功能。在C++中,基本类的非成员函数指针都需要后面这种写法。
- 1 回答
- 0 关注
- 1087 浏览
添加回答
举报
0/150
提交
取消