关于c语言数组的选择题

若二维数组a有m行m列,则计算任一元素a[i][j]在数组中的相对位置的公式为?A,i*m+j;B,j*m+i;C,i*m+j-1;D,i*m+j+1;这都是啥呀?我怎么... 若二维数组a有m行m列,则计算任一元素a[i][j]在数组中的相对位置的公式为?
A,i*m+j; B,j*m+i; C,i*m+j-1; D,i*m+j+1;
这都是啥呀?我怎么看不懂,哪位高手帮我分析一下,先谢谢了
展开
 我来答
秋枫5410
2011-06-09 · TA获得超过807个赞
知道小有建树答主
回答量:546
采纳率:0%
帮助的人:190万
展开全部
选A
因为二维数组物理地址同一维数组相似,二维数组的每一行都是一个一维数组,而且这些一维数组的地址也是连续的,就是说a[0][m-1]后面的地址是a[1][0],其实他的物理结构和一个m*m大小的一维数组是一样的,a[i][j]前有i行,每行有m个元素,而且a[i][j]在第i行的第j位,所以他的相对位置是i*m+j
mfvtxrw
2011-06-11 · TA获得超过2866个赞
知道小有建树答主
回答量:1556
采纳率:100%
帮助的人:787万
展开全部
关于20 和2002,是你写反了,p[1]=20;p+1的实质是p+1*sizeof(int);如果整形占4字节,那么p+1就该是2004,不是2002.
对于a[i] *(&a[i]) *(p+i) ,只是以中操作而已,看你习惯那种,效果都一样
a[i]等同于 *(a+i); *(&a[i]) 等同于*(&(*(a+i))),其实就是*(a+i),*(p+i) 不解释,因为a=p!
主要是对* & [] 的理解,*是取对象,&取地址,[]利用首地址和偏移量取对象!滥用无意义,看你懂那个,就用哪种!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式