分析C语言的声明——《C专家编程》
《C专家编程》一书第三章分析了C语言声明的优先级规则,并以
char * const *(*next)();
为例,用优先级规则对该声明进行分析。
优先级规则如下:
对上述声明的分析过程如下:
对以上分析加以概括:
char * const *(*next)(); 表示:
next是一个指针,其指向的内容是一个函数(即函数指针),该函数返回另一个指针,该指针指向一个类型为char的常量指针。(常量指针表示指针本身只读,而指针指向的内容可变)
对另一个例子的分析:
char * (* c[10])(int **p); 表示:
c是一个包含10个元素的数组,数组的每个元素都是一个指针(即指针数组),该指针是函数指针(p是函数的参数),该函数返回一个char指针。