马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
对于以下代码:#include <stdio.h>
void main()
{
char a[4][3][2];
char (*pa)[2] = &a[1][0];
char (*ppa)[3][2] = &a[1];
}
以上代码能够编译通过;
但若改成以下代码就报错了
char (*pa)[2][3] = &a[1][0];
char (*ppa)[3] = &a[1];
char (*pa)[2] = &a[1];
char (*ppa)[3][2] = &a[1][0];
求解释一下原因,并阐述一下若想使数组指针指向这个三维数组下标有什么讲究。
十分感谢!!!
(*pa)[2]里pa指向2个char;
&a[1][0]指向2个char; // 不报错
********************************
(*ppa)[3][2]里ppa指向3*2个char;
&a[1]指向3*2个char; // 不报错
********************************
(*pa)[2][3]里pa指向2*3个char;
&a[1][0]指向2个char; // 报错
********************************
(*ppa)[3]里ppa指向3个char;
&a[1]指向3*2个char; // 报错
********************************
(*pa)[2]里pa指向2个char;
&a[1]指向3*2个char; // 报错
*********************************
(*ppa)[3][2]里ppa指向3*2个char;
&a[1][0]指向2个char; // 报错
|