说明下面变量的定义char (*p[])(); _____________________char *p()[]; _____________________char (*p)[10][10]; _____________________char(*(*p())[])[]; _____________________
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/19 11:43:36
![说明下面变量的定义char (*p[])(); _____________________char *p()[]; _____________________char (*p)[10][10]; _____________________char(*(*p())[])[]; _____________________](/uploads/image/z/877535-71-5.jpg?t=%E8%AF%B4%E6%98%8E%E4%B8%8B%E9%9D%A2%E5%8F%98%E9%87%8F%E7%9A%84%E5%AE%9A%E4%B9%89char+%28%2Ap%5B%5D%29%28%29%3B+_____________________char+%2Ap%28%29%5B%5D%3B+_____________________char+%28%2Ap%29%5B10%5D%5B10%5D%3B+_____________________char%28%2A%28%2Ap%28%29%29%5B%5D%29%5B%5D%3B+_____________________)
说明下面变量的定义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还能被调用.