C语言二维数组的初始化

二维数组的初始化可以按行分段赋值,也可按行连续赋值。

例如,对于数组 a[5][3],按行分段赋值应该写作:

int a[5][3]={{80,75,92},{61,65,71},{59,63,70},{85,87,90},{76,77,85}};

其中,花括号的对数代表行数,方括号中的值的个数代表列数。

按行连续赋值应该写作:

int a[5][3]={80,75,92,61,65,71,59,63,70,85,87,90,76,77,85};

这两种赋初值的结果是完全相同的。

在这种赋值方式中,编译器会按行和列的个数去自动识别数值所在的位置。如此数组定义3列,那么每相邻的三个值为一行,依此类推,直到行的个数达到所定义的列数为止。

形象地表示地话,这个数组是这样的:

80  75  92

61  65  71

59  63  70

85  87  90

76  77  85

(此表示方式是为了更易于理解编译器是如何识别行和列)

除此之外

1)在对二维数组定义时,行的值可忽略,但列的值不能忽略,如

int a[][3]={{0,0,0},{1,1,1}};

这种方式正确。

2)可以只对部分元素赋值,未赋值的元素自动取“零”值。如

int a[3][3]={{1},{2},{3}};

是对每一行的第一列元素赋值,未赋值的元素的值为 0。

形象地表示地话,这个数组是这样的:

1  0  0
2  0  0
3  0  0

3)二维数组可以看作是由一维数组嵌套而成的;如果一个数组的每个元素又是一个数组,那么它就是二维数组。当然,前提是各个元素的类型必须相同。根据这样的分析,一个二维数组也可以分解为多个一维数组,C语言允许这种分解。

例如,二维数组a[3][4]可分解为三个一维数组,它们的数组名分别为 a[0]、a[1]、a[2]。

这三个一维数组可以直接拿来使用。这三个一维数组都有 4 个元素,比如,一维数组 a[0] 的元素为 a[0][0]、a[0][1]、a[0][2]、a[0][3]。

你可能感兴趣的:(C语言,数据结构,开发语言,c语言,c++)