首页 > C > 数组 阅读:57,774

二维数组定义

 二维数组可以理解为数学中的矩阵的一个类似概念。二维数组定义的一般形式为:

类型说明符 数组名[常量表达式1][常量表达式2]

在上面的定义中,常量表达式1为二维数组的行,常量表达式2为二维数组的列。一个具体的二维数组如下:

int a[5][10];

上面就定义了一个510列的整型的二维数组,共有5*10个元素。C语言中定义的二维数组实际上是一个一维数组,这个一维数组的每一个成员又是一个一维数组。如以上定义的a数组,则可视a数组由a[0]a[1]a[2]a[3]a[4]五个元素组成,而a[0]a[1]a[2]…a[4]等每个元素又分别是由10个整型元素组成的一维数组。可用a[0][0]a[0][1]等来引用a[0]中的每个元素,其它依次类推。

a[0][0] a[0][1] a[0][2] a[0][3]…a[0][9]

a[1][0] a[1][1] a[1][2] a[1][3]…a[1][9]

a[2][0] a[2][1] a[2][2] a[2][3]...a[2][9]

...

a[4][0] a[4][1] a[4][2] a[4][3]...a[4][9]

二维数组在概念上是二维的,即是说其下标在行和列两个方向增减。但是,存放二维数组的内存却是连续编址的,也就是按一维线性排列的。在C语言中,二维数组是按行排列的。即,先存放a[0]行,再存放a[1]行,最后存放a[2]行。每行中的元素也是依次存放。而每个元素的长度取决于数组的类型。比如如果定义的是整数类型的数组,那么每个元素的长度即为sizeof(int),一般为4个字节。比如a[5][10]的元素在内存中存放的情形为:

a[0][0] a[0][1] a[0][2] a[0][3]…a[0][9] a[1][0] a[1][1] a[1][2] a[1][3]…a[1][9] a[2][0]a[2][1]a[2][2] a[2][3]...a[2][9]...a[4][0] a[4][1] a[4][2] a[4][3]...a[4][9]

周哥教IT,分享编程知识,提高编程技能,程序员的充电站。跟着周哥一起学习,每天都有进步。

通俗易懂,深入浅出,一篇文章只讲一个知识点。

当你决定关注「周哥教IT」,你已然超越了90%的程序员!

IT黄埔-周哥教IT技术交流QQ群:213774841,期待您的加入!

二维码
微信扫描二维码关注