分析C语言的声明——《C专家编程》

《C专家编程》一书第三章分析了C语言声明的优先级规则,并以

char * const *(*next)();

为例,用优先级规则对该声明进行分析。

优先级规则如下:

对上述声明的分析过程如下:

对以上分析加以概括:

char * const *(*next)();  表示:

next是一个指针,其指向的内容是一个函数(即函数指针),该函数返回另一个指针,该指针指向一个类型为char的常量指针。(常量指针表示指针本身只读,而指针指向的内容可变) 

 

对另一个例子的分析:

char * (* c[10])(int **p);  表示:

c是一个包含10个元素的数组,数组的每个元素都是一个指针(即指针数组),该指针是函数指针(p是函数的参数),该函数返回一个char指针。