作业帮 > 综合 > 作业

二维数组的等价问题*若有以下定义和赋值语句,则与&s[i][j]等价的是().int s[2][3]={0},(*p)[

来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/06 05:45:39
二维数组的等价问题
*若有以下定义和赋值语句,则与&s[i][j]等价的是().
int s[2][3]={0},(*p)[3],i,j;
p=s; i=j=1;
A) *(*(p+i)+j)
B) *(p[i]+j)
C) *(p+i)+j
D) (*(p+i))[j ]
二维数组的等价问题*若有以下定义和赋值语句,则与&s[i][j]等价的是().int s[2][3]={0},(*p)[
答案是C.
这题可以使用排除法,&s[i][j],是一个地址.而ABD都是一个int变量,只有C是地址.所以排除法可以很简单的知道答案.
满意请采纳!
再问: 谢谢 那咋样判断是变量还是地址啊!
再答: 这个,怎么说了,要是我,我可以很简单的分辨出来,要我说出怎么分辨的,我讲不出来。 我随便讲讲,你就当随便听听吧。 首先,p是你定义的int *类型,也就是指针变量,就是储存的是地址。 其次,p[i]是等价于*(p+i);p[i][j]就等价于*(*(p+i)+j)。 你把所有选项分化为没有[]的形式,由于p是二维的,所以带有两个*的就是int变量,而只有一个*的就是地址。 当然,这种说法不是很好,并不能在所有范围类使用,只能说在这道题里适合。 满意请采纳!