c语言题目:已知有声明"int a[4][4]={{1,2,3,4},{5,6,7,8},{9,1
c语言题目:已知有声明"inta[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};",若需要引用值为12的数...
c语言题目:已知有声明"int a[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};",若需要引用值为12的数组元素,则下列选项中错误的是____ 。
A.*(a+2)+3 B.*(*(a+2)+3) C.*(a[2]+3) D.a[2][3] 展开
A.*(a+2)+3 B.*(*(a+2)+3) C.*(a[2]+3) D.a[2][3] 展开
4个回答
展开全部
a是一个二维数组,可以看成元素是一维数组的一维数组。用数组名表示数组是表示的数组的首地址,数组的步进是以其元素作为参照的。a作为二维数组,那么a+2步进以一维数组整个数组做参考,所以就移到了{9,10,11,12}这个一维数组的首地址这儿来,然后对它取*就相当于成了一维数组,一维数组以元素int做参考,步进3就移到步进3移到的是12的地址上。所以a的值是12的地址,b就正确了。
二维数组只带一个下标认为是组下标,故而a[2]是指向了{9,10,11,12}这个一维数组,一维数组步进以int作为标准,+3移到了12的地址上,取*就得到了12的值。
D a[2][3],第一个组下标,第二个组内下标,取得的肯定是12.
二维数组只带一个下标认为是组下标,故而a[2]是指向了{9,10,11,12}这个一维数组,一维数组步进以int作为标准,+3移到了12的地址上,取*就得到了12的值。
D a[2][3],第一个组下标,第二个组内下标,取得的肯定是12.
展开全部
错误的是A。它不是元素值,而是元素地址。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
A是错误的,A选项是指向a[2][3]的指针,其他的都是a[2][3]
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
B
追问
为什么?
追答
因为B算出来是*12也就是12的地址,其它的算出来都是12
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询