摘要:
今天在看《深入理解C++11》的时候,看到一段有意思的代码:int (*(*pf())())() { return nullptr; }我立刻就懵了——从来没有见过这样的函数声明。那么它究竟是一个怎样的函数呢?我努力回忆起《C专家编程》一书的内容,把其中解读变量声明的方法应用于该函数上,最终读懂了该函数。下面是大致的解读过程。首先,要确定声明中出现的操作符的优先级。显然,函数调用操作符()的优先级是高于指针解引用操作符*的。另外,小括号总是具有最高优先级。其次,要确定在声明中标识符与某个操作符结合起来的时候有什么意义。例如:a() a是一个函数*a a是一个指针由于函数声明的特殊性,当指... 阅读全文