void (*(*(*(*p(void))[3])(void))(void))(void)是什么玩意?请详解...

发布网友 发布时间:2024-10-24 08:42

我来回答

3个回答

热心网友 时间:2024-11-06 08:08

你可以上网搜一下“C语言复杂声明”,有个“右左法则”可以用来分析这种复杂的声明。
从p开始,先向右看是(void),说明p是个无参函数,再向左看是*,说明p函数的返回类型是个指针。那它返回的是什么类型的指针呢?继续向右看。
右边是[3],左边是(*,说明是指向长度为3的数组的指针。因此p返回的类型是指向长度为3的数组的指针。那么这个长度为3的数组的元素类型又是什么呢?继续向右看。
右边是(void),左边是(*,所以这个数组的元素类型是无参函数的指针,函数的返回类型继续看。
右边是(void),左边是(*,所以函数的返回类型还是一个无参函数的指针,这个函数的返回类型继续看。
右边是(void),左边是void,所以函数的返回类型是void,函数无参。
综合起来,p是个无参函数,p的返回类型是个指针,指向一个长度为3的数组。这个长度为3的数组,其元素类型是函数指针,该函数指针指向一个返回类型为函数指针的无参函数,而这个无参函数的返回类型仍然是一个函数指针,这个新的函数指针类型,指向的是一个返回类型为void的无参函数。

热心网友 时间:2024-11-06 08:07

我想说 出这个题的傻X 比谭浩强 还要谭浩强 ~~~~~~

热心网友 时间:2024-11-06 08:06

四重指针这在哪看的,这什么跟什么吗,晕,你还是不用管了,这跟本就用不到

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com