作业帮 > 综合 > 作业

static int a[2][3]={1,2,3,4,5,6}; int m,*ptr=&a[0][0]; 执行m=(

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/27 16:06:48
static int a[2][3]={1,2,3,4,5,6}; int m,*ptr=&a[0][0]; 执行m=(*ptr)*(*(ptr+2))*(*(ptr+4));后
m的值是多少,答案是24.
*ptr=a[0][0]=1
*(ptr+2)=a[0][2]=3;
*(ptr+4)=a[1][1]=5
最后结果是15,不是24.我已经跑过一遍,
ptr是整个数组的首地址,那么*ptr=a[0][0]是无可争议滴!,接着ptr+2,很明显是a[0][2]的地址,因为二维数组在存储的时候是线性存储的,不存在二维,仅仅是逻辑上的二维而已,那么ptr+4其实就是从a[0][0]之后数四个数,那么就得到其是a[1][1]的地址,即是5的地址.