题目
c++二维数组问题3.已知int a[3][2]={3,2,1}; 则表达式“a[0][0]/a[0][1]/a[0][2]”的值是1,
a[0][2]不是已经超出数组范围了吗,答案1是怎么算得,
a[0][2]不是已经超出数组范围了吗,答案1是怎么算得,
提问时间:2021-03-18
答案
二维数组的实际上在内存里存储格式是一维的
也就是a [3][2]
占用了 3*2 个int 类型数据的 连续内存空间
排放的模式是:
a[0][0] ,a[0][1], a[1][0],a[1][1], a[2][0],a[2][1]
为了表示方便,我打了空格分开了,其实是连续存储的,只是逻辑上认为是二维的而已.
那么考虑初始化的问题,int a[3][2]={3,2,1}; 分别赋值给了a[0][0] ,a[0][1], a[1][0]
现在考虑 a[0][2]到底是什么
a[0][2]其实被编译器解释为 *( (*a+0 ) + 2) ,a是数组首地址,
在C/C++编译器里,数组越界是不检查的,再考虑上面的存储格式
也就是说 ,*( (*a+0 ) + 2) 这个值应该是指向了 *( (*a+0 ) + 1) =a[0][1] 隔壁的家伙
现在你知道是谁了吧,a[1][0]
所以a[0][2]就是a[1][0]=1;
后面的简单算术问题我就不解释了.
PS,不完全初始化话,没有赋值的元素都会被编译器弄成0.
楼上不少人的解释都不涉及计算机本身,怎么也不会答到点子上的.
也就是a [3][2]
占用了 3*2 个int 类型数据的 连续内存空间
排放的模式是:
a[0][0] ,a[0][1], a[1][0],a[1][1], a[2][0],a[2][1]
为了表示方便,我打了空格分开了,其实是连续存储的,只是逻辑上认为是二维的而已.
那么考虑初始化的问题,int a[3][2]={3,2,1}; 分别赋值给了a[0][0] ,a[0][1], a[1][0]
现在考虑 a[0][2]到底是什么
a[0][2]其实被编译器解释为 *( (*a+0 ) + 2) ,a是数组首地址,
在C/C++编译器里,数组越界是不检查的,再考虑上面的存储格式
也就是说 ,*( (*a+0 ) + 2) 这个值应该是指向了 *( (*a+0 ) + 1) =a[0][1] 隔壁的家伙
现在你知道是谁了吧,a[1][0]
所以a[0][2]就是a[1][0]=1;
后面的简单算术问题我就不解释了.
PS,不完全初始化话,没有赋值的元素都会被编译器弄成0.
楼上不少人的解释都不涉及计算机本身,怎么也不会答到点子上的.
举一反三
已知函数f(x)=x,g(x)=alnx,a∈R.若曲线y=f(x)与曲线y=g(x)相交,且在交点处有相同的切线,求a的值和该切线方程.
我想写一篇关于奥巴马的演讲的文章,写哪一篇好呢?为什么好
奥巴马演讲不用看稿子.为什么中国领导演讲要看?
想找英语初三上学期的首字母填空练习……
英语翻译
最新试题
- 1The things _____ we lose have a way of coming back to us in the endm,if
- 2All the doctors and nurses on the ORBIS plane are volunteers.改为同义句All the doctors and nurses on the
- 3-4a^2n+7乘b^2与3/7a^3b^m-1是同类项 那么n-4a^2n+7乘b^2与3/7a^3b^m-1是同类项m=多少呢
- 4yun是整体认读音节吗
- 5两根10米长的绳子,甲绳用去了五分之二乙绳用去了五分之二米,剩下的绳子相比,哪根长?
- 6yesterday 的含义
- 7滑动变阻器怎么改变电压
- 8如,2008年的增速是-40.3%、2007年的增速是145.3%、2006年的增速是119.5%,如何计算平均增长速度?
- 9有一家商店销售某种商品,这种商品的进价是30元.
- 10when is your favourite food?哪里错了
热门考点
- 1如图,AC⊥BC,AD⊥BD,AD=BC,CE⊥AB,DF⊥AB,垂足分别是E,F,那么,CE=DF吗?
- 2放假了~谁能帮我制订个假期计划?
- 3文言文兰亭集序里的:虽世殊事异,所以兴怀,其致一也.怎么翻译
- 4父爱的高度
- 5买3瓶墨水和5支铅笔共用4.6元,每瓶墨水的价格相当于6支铅笔的价钱.墨水,铅笔的价格各是多少?
- 6Did all of them go to the film?No.They____went to the concert instead. Amost Bmostly
- 7一条小青虫,它的身长每天延长1倍,长到第十天的时候身长20cm.请问,小青虫在身长是10cm的时候已经生长了
- 81、有一个地摊的推主,把8个白的、8个黑的围棋子放在一个袋子里,他规定:凡愿意摸彩者,每人交1元钱作为“手续费”,然后从袋子里摸 出5个棋子,中彩的情况如下:
- 9已知a,b,c为正数,用排序不等式证明:2(a3+b3+c3)≥a2(b+c)+b2(a+c)+c2(a+b).
- 10是be interest in 还是be interested in?