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

时间:2022-01-23 22:18:27
  1. 声明从它的名字开始读取,然后依次按优先级依次读取。
  2. 优先级从高到低依次是
    •   声明中被括号括起来的那部分
    •      后缀操作符:
      • 括号()表示这是一个函数
      • 方括号表[]这是一个数组
    •   前缀操作符:星号*表示“指向...的指针”
  • 如果const和(或)valatile关键字的后面紧跟类型说明符(如int,long等),那么它作用于类型说明符,在其他情况下,const和(或)volatile关键字作用于塔左边紧邻的指针星号。
  •   摘自《C专家编程》

      举例:

      

      char * const *(*next)();
    

      next是一个指针,指向一个函数,该函数返回一个指针,返回一个指向类型为char的常量指针。