注册 登录
编程论坛 C++教室

请教一个很简单的问题;感激不尽

huang1938120 发布于 2012-12-11 15:41, 335 次点击
我有点不明白二维数组
比如 a[2][3] 整形表达式a[2-1][2*2-1]
这是为什么
6 回复
#2
rjsp2012-12-11 15:49
听不懂,你体育老师呢
#3
wp2319572012-12-11 15:51
二维数组是个方阵(貌似叫矩阵也可以吧)

N行M列  自己研究一下 即可
#4
huang19381202012-12-11 15:52
回复 2楼 rjsp
a[2][3]的整型表达式不是等于a[2-1][2*2-1]嘛
#5
mmmmmmmmmmmm2012-12-11 16:10
a[2][3] 可以理解为 2行3列  
a[0][0] a[0][1] a[0][2]
a[1][0] a[1][1] a[1][2]
a[2-1][2*2-1]不如写成a[1][3]
#6
yuccn2012-12-11 16:34
主要在编译的时候,编译器就做了处理
编译器会把数字表达式裁剪成数字。
也就是a[2][3]

编译完成之后也不存在 a[2][3] 这样的数组的,它实际上就是一个一维的内存空间。一块sizeof(int ) * 3 *2 大小的空间而已。


[ 本帖最后由 yuccn 于 2012-12-11 16:35 编辑 ]
#7
fxbszj2012-12-11 21:53
以下是引用huang1938120在2012-12-11 15:41:13的发言:

我有点不明白二维数组
比如 a[2][3] 整形表达式a[2-1][2*2-1]
这是为什么

其实你误解了哦,明白的说,你所谓的那个应该表示为a[3-1][4-1]
因为数组的计数是从0开始计数的,例如有它们的位置就分别是0 1 2 3 4

如果是表示数组里的某个数,a[2][3]位置代表的是第三行的第四个数
a[0][0]   a[0][1]   a[0][2]  a[0][3]
a[1][0]   a[1][1]   a[1][2]  a[1][3]
a[2][0]   a[2][1]   a[2][2]  a[2][3]

如果是定义数组,a[2][3]就是代码有2行3列
5楼说的那样

1