int a[2][3]={0,1,2,3},*p; p=&a[2]; *--p*--p的值为什么是0

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/14 05:14:47

int a[2][3]={0,1,2,3},*p; p=&a[2]; *--p*--p的值为什么是0
int a[2][3]={0,1,2,3},*p; p=&a[2]; *--p
*--p的值为什么是0

int a[2][3]={0,1,2,3},*p; p=&a[2]; *--p*--p的值为什么是0
什么也不是!就p=&a[2];这一句就不会过编译,因为a是二维数组,所以&a[2]是int (*)[3]型的,而p是int *型的,等号两边类型不配!如果是p=a[2];的话,那*--p就是0了.因为:编译器把int a[2][3]={0,1,2,3}解释为int a[2][3]={{0,1,2},{3,0,0}},a[2]已经越界指向最后一个0后面了,但它由p=a[2];传递给p后,经过了--p,这样p就指向最后一个0了,再由*取出值来自然是0.