c语言二维数组用指针表示的问题

2020-10-29 国际 99阅读
#include
void main()
{
int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};

int (*p)[4];
p=a;

printf("%d",*(p)[3]);
}
首先你没有理解int (*p)[4];
他的意思就是含有4个指针的数组 由于int a[3][4]只有3行,所以*(p)[3]这个地方就越界了
如果*(p)[2]地址中的值就是17 *(p)[1] 就是9 ,*(p)[0]就是1
如果你要打印7 *((p)[0]+3)
声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com