说明下面变量的定义char (*p[])(); _____________________char *p()[]; _____________________char (*p)[10][10]; _____________________char(*(*p())[])[]; _____________________

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/30 12:28:06

说明下面变量的定义char (*p[])(); _____________________char *p()[]; _____________________char (*p)[10][10]; _____________________char(*(*p())[])[]; _____________________
说明下面变量的定义
char (*p[])(); _____________________
char *p()[]; _____________________
char (*p)[10][10]; _____________________
char(*(*p())[])[]; _____________________

说明下面变量的定义char (*p[])(); _____________________char *p()[]; _____________________char (*p)[10][10]; _____________________char(*(*p())[])[]; _____________________
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还能被调用.