位置:首页 > 软件操作教程 > 编程开发 > C语言 > 问题详情

C语言 二维数组元素的初始化

提问人:刘团圆发布时间:2020-11-30

同一维数组一样,也可以在定义二维数组时对二维数组进行初始化。对二维数组初始化有以下几种形式:

(1)分行对二维数组元素赋初值 初始化形式为:

    类型标识符     数组名[行常量表达式][列常置表达式]={{第0行初值表},{第1行初值表}……{最后1行初值表}};

例如:

    int a[3][4]=[1,2,3,4}.{5,6,7,8},{9,10,11,12}};

    这种初始化形式非常直观,赋值规则是:将“第0行初值表”中的数据,依次赋给第0行中各元素;将“第1行初值表”中的数据,依次赋给第1行各元素;以此类推。


(2)按二维数组在内存中的排列顺序给各元素赋初值初始化形式为:

    类型标识符  数组名[行常置表达式][列常置表达式]={初值表};

例如:

    int a[3] [4]={1,2,3,4,5,6,7,8,9,10,11.12};

    因为二维数组在内存中是按行依次存放的,所以赋值规则为:按二维数组在内存中的排列顺序,将初值表中的数据,依次赋给各元素。以数组a[3][4]为例,选取前4个数据,赋给第一行的四个元素;依次再选取4个数据,赋给第二行的四个元素,以此类推。

这种初始化形式的效果与第一种相同,但第一种更直观一些,也不容易出现多写、少写初值数据的 情况。


(3)对每行的部分元素赋初值

初始化形式与第一种相似,但可以不给全部元素赋初值。例如:

    mt a[3][4]-{{l}.{0.3),C8}};

初始化后数组中各元素的值为:

第一行: 1000 

第二行: 0300 

第三行: 8000

这种形式对非0元素较少时比较方便,不必将所有的零都写出,只需说明必要的数据即可。

(4)如果对全部元素都赋初值,则定义时“行常量表达式”可以省略。但“列常量表达式”不能省略。系统会根据给出的初值总数和列数计算出行数。所以以上三种初始化形式,可以以下述形式出现:

int a[ ][4]-{{l,2,3,4J.{5,6,7,8}.{9,10,11,12}}; 

int a[ ][4]-{1.2,3,4.5,6.7.8.9.10.11.12}; 

int a[ ][4]-{{l},{0,3},{8}};

继续查找其他问题的答案?

相关视频回答
回复(0)
返回顶部