您的位置:首页 > 其它

数组下标访问

2016-05-24 16:50 309 查看
Q:int A[2][3]={1,2,3,4,5,6};,则A[1][0]和*(*(A+1)+1)的值分别是(A)

A、4 5
B、4 3
C、3 5
D、3 4






A:假设给一个一维数组 int a[5];首先要明白 a 和 &a 的意思,他们地址值一样:

可以把a理解江苏的省会南京市(即江苏省城市排名中的第一个,对应数组中的第一个元素),&a理解为江苏省;那么a+1的值就是江苏省里的其他市,比如苏州市;&a+1理解为安徽的邻省比如安徽省,所以&a+1可能就输出一个不确定的数了。

在二维数组里也是一样,int A[2][3](这个数组其实可以看做有两个一维数组,每个一维数组里有3个元素,a[1][2]就是指向第二个一维数组的第三个元素),A+1的话代表A[0](这是二维数组里的第一个含有3个元素的一维数组)下一个的一维数组A[1],而&a+1就是一个不确定的数了;那么(1)A[1][0]就是4;*(*(A+1)+1);*(A+1)指向a[1]这个一维数组,也即指向4,然后+1(加4个字节)就是指向下一个元素5,然后*运算就是输出5。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: