声明: 普通的声明,它所说明并非是自身,而是其他地方创建的对象
定义: 他为对象分配了内存,让这个对象实实在在的占据了系统的一块内存。
理解C语言声明的优先级
A 声明从它的名字开始读取,然后按照优先级顺序依次读取。
B 优先级从高到底依次是:
B1 声明中被括号括起来的那部分
B2 后缀操作符:
括号()表示这是一个函数
方括号[] 表示这是一个数组
B3 前缀操作符:星号*表示“指向....的指针”
C 如果const和(或者)volatile关键字的后面紧跟类型说明符号(例如:int,long等),那么
它作用于类型说明符。其他情况const和(或者)volatile关键字作用于它左边近邻的指针星号。
例如:
char * const * (*next)();
A : next是一个变量
B1:因为*next被括号括起来,所以 next是一个指针变量,它指向....
B2: (*next)后面是一个(),所以,next是一个指针变量,它指向一个函数。这个函数的参数为空,返回值是.....
B3 (*next)()前缀是一个*号,所以函数的返回值是一个指针。
C const后面的关键词没有类型说明,所以const作用于它左边临近的指针星号。这个指针指向的内容是一个常量指针,这个常量指针指向的一个类型是char的字符。
综合起来: next是一个函数指针,这个函数的返回值是一个指针,该指针指向一个常量指针,这个常量指针指向一个char类型的变量。