C语言二维数组概述

二维数组定义的一般形式:类型说明符 数组名[常量表达式][常量表达式]
例如:定义一个3行4列的数组a :int a [3][4];
可以将二维数组看成是一种特殊的一维数组:它的元素又是一个一维数组。
例如上面数组a,可以将a看成一维数组,它有三个元素,每个元素又包含4个元素的一维数组。
二维数组在概念上是二维的,但在实际的硬件存储器却是连续编址的,也就是说存储器单元是按一维线性排列的。有俩种排列方式:一种是按行排列,即放完一行之后顺次放入第二行。另一种是按列排列,即放完一列之后顺次放入第二列。在C语言中二维数组是按行排列的。

二维数组初始化:
数据类型 数组名 [常量表达式][常量表达式] = {初始化数据};
有四种方法对二维数组初始化:
1.直接分行给二维数组赋初值:
例如:int a [2][3] = {{1,2,3},{4,5,6}};
2.可以将所有数据写在一个花括弧内,按数组的顺序对各元素进行赋值。
例如:int a [2][3] = {1,2,3,4,5,6};
3.可以对部分元素赋初值。
例如:int a [2][3] = {{1},{2}};
因为每一个初值都带了花括弧,所以是对每一个数组进行赋值,即第一行第一个数据为1,第二行第一个数据为2。如果数据没有花括弧就是对数组按顺序进行赋值,即第一行第一个数据为1,第一行第二个数据为2。
4.如果对全部元素都赋初值,则定义数组时对第一维的长度可以不指定,但第二维的长度不能省略。
例如:int a [2][3] = {1,2,3,4,5,6};
等价于:int a [][3] = {1,2,3,4,5,6};
在定义时也可以只对部分元素赋初值而省略第一维的长度,但应分行赋初值。
例如:int a [][3] = {{},{0,1,2}};

发布了40 篇原创文章 · 获赞 2 · 访问量 3380

猜你喜欢

转载自blog.csdn.net/BEYONDmonster/article/details/104770725