二维数组的初始化可以按行分段赋值,也可按行连续赋值。
例如,对于数组 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语言允许这种分解。文章来源:https://www.toymoban.com/news/detail-443689.html
例如,二维数组a[3][4]可分解为三个一维数组,它们的数组名分别为 a[0]、a[1]、a[2]。
这三个一维数组可以直接拿来使用。这三个一维数组都有 4 个元素,比如,一维数组 a[0] 的元素为 a[0][0]、a[0][1]、a[0][2]、a[0][3]。文章来源地址https://www.toymoban.com/news/detail-443689.html
到了这里,关于C语言二维数组的初始化的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!