c语言,解释下 char(*(*x()[5])() 的意思

2020-10-28 社会 156阅读
从内向外分析:
*x() : x是一个无参数函数,该函数返回一个指针
*(*x())[5] : 由于C语言声明的优先级规则是后缀优先于前缀,所以这里就要先考虑后面的[5],再看前面的星号,于是得出: x是一个无参函数,该函数返回一个指针,返回的这个指针指向一个有5个指针元素的数组。
char(*(*x())[5])() : 依然先看后缀得知这是个函数,而且没有参数,再看前缀,结合后缀可知这是一个返回值类型为char的函数,再结合对*(*x())[5]的分析得出最后结论:
x是一个无参数函数,该函数返回一个指针,返回的这个指针指向一个有5个指针元素的数组,该数组的每个元素都可指向一个返回值类型是char的元素函数。
声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com