若有定义语句:char s[3][10],(*K)[3],*p;
为什么p = s[0] 正确?
char s[3][10],(*K)[3],*p;这么写,相当于:
char s[3][10];
char *p; //( *K)[3]先不管
s是一个二维数组,s[0]就是二维数组第一行的首地址(一个char类型的指针)
p是一个char类型的指针,所以,p = s[0]是可以的。
在指针变量p中存储 s[0] 的地址
s[0]是一个地址,指针p指向s[0] 的地址
p是一个指针,而二维数组s的s[0]也是一个指针,所以可以赋值。s[0]指向二维数组的第一行的首地址。