解释 char (*(*x[3])())[5] 定义的含义
1)English Edition Explanation:
declare x as array 3 of pointer to function returning pointer to array 5 of char.
2)Chinese Edition Explanation:
x为三个元素的数组,数组元素类型为指针,指针指向一个函数,函数参数类型为空,
函数的返回值为指针,指针指向包含5个元素的char 数组。
总结:
这类复杂的声明,解读要根据运算符的优先级及其结合方向。
[],()的运算符都高于* ,结合方向都是自左到右的。
所以对于char (*(*x[3])())[5],分析步骤如下:
step1: (*x[3]) x是一个大小为3的数组,数组元素是指针
step2: (*x[3])() x是一个大小为3的数组,数组元素是指针,指针指向一个函数
step3:(*(*x[3])()) x是一个大小为3的数组,数组元素是指针,指针指向一个函数,该函数返回一个指针
step4:char(*(*x[3])())[5] x是一个大小为3的数组,数组元素是指针,指针指向一个函数,
该函数返回一个指针,这个指针指向一个大小为5的char数组