
若有定义:int a[3][4];,不能表示数组元素a[1][1]的是
A、*(a[1]+1)B、*(&a[1][1])C、(*(a+1))[1]D、*(a+5)具体解析哈~O(∩_∩)O谢谢~答案到底是C还是D额?(⊙o⊙)…...
A、*(a[1]+1)
B、*(&a[1][1])
C、(*(a+1))[1]
D、*(a+5)
具体解析哈~O(∩_∩)O谢谢~
答案到底是C还是D额?(⊙o⊙)… 展开
B、*(&a[1][1])
C、(*(a+1))[1]
D、*(a+5)
具体解析哈~O(∩_∩)O谢谢~
答案到底是C还是D额?(⊙o⊙)… 展开
7个回答
展开全部
D
我的理解:A:a[1]第二行首地址+1地址取值a[1][1];
B:a[1][1]取地址再取值;[]优先级高没问题;
C:*(a+1)与a[1]意思一致,都是指取a的地址加上一个偏移量再取地址中的值,a的偏移量步距sizeof((*a)[4])
D:表示第六行首地址,地址越界
要是有帮助的话,就散点分吧
我的理解:A:a[1]第二行首地址+1地址取值a[1][1];
B:a[1][1]取地址再取值;[]优先级高没问题;
C:*(a+1)与a[1]意思一致,都是指取a的地址加上一个偏移量再取地址中的值,a的偏移量步距sizeof((*a)[4])
D:表示第六行首地址,地址越界
要是有帮助的话,就散点分吧
展开全部
d不可以表示,不用想! 套公式就可以了 谭浩强第四版 p247 *(a+1) a[1][0].
c 可以表示 [](下标符的优先级)>*(取地址) 谭浩强第四版 p378
a[1]=*(a+1) 同理 (*(a+1))[1]=*(*(a+1)+1) 书上p247 有介绍 *(*(a+1)+1) =a[1][1] 多看下书,计算机不是人。不要惯性思维
c 可以表示 [](下标符的优先级)>*(取地址) 谭浩强第四版 p378
a[1]=*(a+1) 同理 (*(a+1))[1]=*(*(a+1)+1) 书上p247 有介绍 *(*(a+1)+1) =a[1][1] 多看下书,计算机不是人。不要惯性思维
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
答案是C 第一二个不用解释吧~~第四个答案~~要清楚二维数组内存的分配~~其实有点类似余下:
a[0][0],a[0][1],a[0][2]..,a[1][0]...a[3][4]..其实是连续的,,,所以a[5],,就是在a 首地址下移动了 5个int字长的内存空间,,正确到a[1][1],,至于C错误的表示方式~~~
a[0][0],a[0][1],a[0][2]..,a[1][0]...a[3][4]..其实是连续的,,,所以a[5],,就是在a 首地址下移动了 5个int字长的内存空间,,正确到a[1][1],,至于C错误的表示方式~~~
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询