如果你看到“f()();”第一反应是什么?

来源:互联网 发布:网络主播视频直播 编辑:程序博客网 时间:2024/06/10 22:22

今天为了理解“调用运算符”的含义,

便写出了以下程序来做实践


//类型别名,为了f()的声明简洁明了typedef void (*pfun)();void fun(){    cout<<"I am in fun()"<<endl;}//定义一个可以返回函数指针的函数pfun f(){    return &fun;}int main(){    f()();    return EXIT_SUCCESS;}

这里,我们要客观的看待调用运算符才能理解上述代码,它就是一普通的运算符,由于f是一函数,故面加上“()”,  便是调用以f命名的 函数体,

而此函数的返回值又是一函数,故再次缀上“()”,这次便又调用了f() 返回的那个函数fun。

如果fun返回的还是函数指针,那么后面的"()"可以一直的追加下去。


 写到这里,我已经能够从潜意识里区别了“括号”和“调用运算符”了。

0 0
原创粉丝点击