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

二维数组的等价问题
*若有以下定义和赋值语句,则与&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 ]
推窗望月1019 1年前 已收到1个回答 举报

shirlyangel 幼苗

共回答了19个问题采纳率:89.5% 举报

答案是C.
这题可以使用排除法,&s[i][j],是一个地址.而ABD都是一个int变量,只有C是地址.所以排除法可以很简单的知道答案.
满意请采纳!

1年前 追问

4

推窗望月1019 举报

谢谢 那咋样判断是变量还是地址啊!

举报 shirlyangel

这个,怎么说了,要是我,我可以很简单的分辨出来,要我说出怎么分辨的,我讲不出来。 我随便讲讲,你就当随便听听吧。 首先,p是你定义的int *类型,也就是指针变量,就是储存的是地址。 其次,p[i]是等价于*(p+i);p[i][j]就等价于*(*(p+i)+j)。 你把所有选项分化为没有[]的形式,由于p是二维的,所以带有两个*的就是int变量,而只有一个*的就是地址。 当然,这种说法不是很好,并不能在所有范围类使用,只能说在这道题里适合。 满意请采纳!
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 17 q. 0.027 s. - webmaster@yulucn.com