您的位置:首页 > 其它

有关优先级和声明

2017-10-26 22:44 435 查看

Source

P64

c语言声明的优先级规则

A.声明从它的名字开始读取,然后按照优先级顺序依次读取

B.优先级从高到低依次是

B.1 声明中被括号括起来的部分

B.2 后缀操作符

括号()表示这是一个函数,方括号[]表示这是一个数组

B.3前缀操作符:星号*表示指向…的指针

C.如果const关键字后面紧跟类型说明符(如 int long等)

它作用于类型说明符。在其他情况下,const作用于它左边紧邻的指针星号。

Example

const * const * ( *next )();


Analyze

A.首先,看变量名,next直接被括号括住。

B1.所以先把括号里的东西作为一个整体,得出“next是一个指向…的指针”

B.然后考虑括号外面的东西,在星号前缀和括号后缀之间做出选择

B2.规则告诉我们优先级较高的右边的函数括号,所以得出“next是一个函数指针,指向一个返回…的函数”

B3.然后,处理前缀“*”,得出指针所指向的内容

C.最后,把“char*const”解释未指向字符的常量指针

Result

next是一个指针,它指向一个函数,该函数返回另一个指针,该指针指向一个类型为char的常量指针
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: