说明下面变量的定义

发布网友 发布时间:2022-04-23 22:50

我来回答

2个回答

热心网友 时间:2023-10-12 17:57

1 p是一个函数指针数组,这个数组的元素是函数指针。 这个函数没有参数,返回值类型是char类型。
2 p是一个函数指针,这个函数没有参数值,返回值类型是一个字符数组。
3 p是一个指向二维数组的指针。这是一个字符类型的二维数组
4 p是一个指向数组的指针。这个数组元素是函数指针,此函数指针没有参数,返回值类型为char类型数组。

仅供参考! 可以继续交流~~

热心网友 时间:2023-10-12 17:57

1.3同上面那位老兄的看法,顺便给个例子:
1:
char (*p1[3])();
char (*func1)() = &aa;
char (*func2)() = &aa;
char (*func3)() = &aa;
p1[0] = func1;
p1[1] = func2;
p1[2] = func3;
static char aa(void){ return 'K';}

3:
char (*p3)[10][10];
char chararry[10][10];
p3= &chararry;
(*p3)[0][0] = 'C';

第二个VS编译不通过。

第四个也比较奇怪,能编译通过,但函数指针通常写法(*p)(),而这里是(*p())。
会不会是函数声明?
char(*(*p4())[])[] { return NULL;}

作为成员函数的定义,能编译通过。
而且p4还能被调用。

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