理解 C 语言声明的优先级规则

以下规则摘自《C 专家编程》第三章 “分析 C 语言的声明”

A 声明从它的名字开始读取,然后按照优先级顺序依次读取。
B 优先级从高到低依次是:
  B. 1 声明中被括号括起来的那部分
  B. 2 后缀操作符:
       括号()表示这是一个函数,而
       方括号[]表示这是一个数组。
  B. 3 前缀操作符:星号*表示“指向...的指针“。
C 如果const和(或)volatile关键字的后面紧跟
  类型说明符(如int,long等),那么它作用于
  类型说明符。在其他情况下,const和(或)
  volatile关键字作用于它左边紧邻的指针星号。

示例:

char * const *(*next)();
char *(* c[10])(int **p);

 

Advertisements

发表评论

Fill in your details below or click an icon to log in:

WordPress.com 徽标

You are commenting using your WordPress.com account. Log Out /  更改 )

Google+ photo

You are commenting using your Google+ account. Log Out /  更改 )

Twitter picture

You are commenting using your Twitter account. Log Out /  更改 )

Facebook photo

You are commenting using your Facebook account. Log Out /  更改 )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.