C语言遇到的问题
问题详述
下面这个,我觉得D对,但是不知道c哪里不对,于是上手敲了代码,结果C选项的表达式在不同编译器里面输出的还是不一样的!!
① 在VS Code中,输出的是0,为什么啊?我觉得会返回a[2][1]的,为什么会输出0啊?
② 在VC++ 6.0中,输出的是一个地址,为什么啊?
代码
#include"stdio.h"
int main(){
int a[3][4]={{0,1,2,3},{4,5,6,7},{8,9,10,11}};
int (*p)[4]=a;
int i,j,k=0;
printf("%d \n",*(p+2)[1]);
return 0;
}