请问这道 c语言的问题

来源:百度知道 编辑:UC知道 时间:2024/05/30 04:35:09
已定义char str[2][3];下表达式不能表示str[1][0]的是:
A:str+1 B:&str[0][0]+3 C:str[0]+3 D:str+3

请参阅C语言中数组的存储映射函数的相关教材,

对于二维数组(int a[i][j]),其存储映射函数为a[c][d]等价于*(&a[0][0]+j*c+d),

于是,char str[2][3]定义后,str[1][0]=*(&str[0][0]+3*1+0)=*(&str[0][0]+3);

因此,A不能表示str[1][0]

答案是A
在C语言中,数组是顺序排列的。
str[2][3]一共占用六个字节。
str[1][0]是第三个
所以答案应该是A
另,B C D 是一个地址,用排除法也可以确定

A