C语言中的二维数组

  1、什么是二维数组?

    二维数组,其实,二维数组与一维数组是类似的,而有所不同的只是,二维数组多了一维,即多了一对中括,

    以及,多了一个下标。

 

  2、二维数组的定义格式:

 

    类型关键字  数组名[常量表达式][常量表达式];

 

    例子:

       int a[3][3];   

       float b[3][5];   

       char c[8][4];

   

     二维数组中的第一个(中括号)里面的(常量表达式)代表着二维数组中有多少行,

     而第二个(中括号)里面的(常量表达式)代表着二维数组中有多少列。

     而二维数组的大小,是使用(行总数)乘以(列的总数)。

 

 

=======================================================================

    3、二维数组的初始化赋值

 

    (1)对二维数组所有的元素都进行赋值的操作

      方式1

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

      通过方式1,我们可以看到第1个大括号内的数据赋给第1行中的3个元素,

            而第2个大括号内的数据赋给第2行中的3个元素,而这种方式,是按行来赋初值。

     结果如下:

      a[0][0] =1   a[0][1] =2   a[0][2] =3

      a[1][0] =4   a[1][1] =5   a[1][2] =6

 

 

     方式2

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

     通过方式2,我们可以看到,是把所有的数据写在一个大括号内,

           就是按数组排列的顺序对每个元素赋初值,跟一维数组类似的,

           同时,它的存放顺序是按行来存放的。

     结果如下:

      a[0][0] =1   a[0][1] =2   a[0][2] =3

      a[1][0] =4   a[1][1] =5   a[1][2] =6

     

    (2)对二维数组部分的元素都进行赋值的操作

     方式3

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

     通过方式3:对部分元素进行赋初值,在这里,它是对各行的第1列赋初值,其余元素自动为0。

     结果如下:

      a[0][0] =1   a[0][1] =0   a[0][2] =0

      a[1][0] =4   a[1][1] =0   a[1][2] =0

 

     方式4

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

     通过方式4:也是对部分元素进行赋初值,在这里,它是对各第1行第1列以及第2行第3列进行了赋初值。

           但是由于,在第2行中第3列的前面还有第1列与第2列的元素,

           所以,即使不对它们赋值也要写上0。

     结果如下:

      a[0][0] =1   a[0][1] =0   a[0][2] =0

      a[1][0] =0   a[1][1] =0   a[1][2] =5

 

   (3)对二维数组中某行的元素都不进行赋值的操作:

    方式5

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

     通过方式5:对第一行第1列赋值为1,第二行整行不赋值,第三行第1列赋值为8。

     结果如下:

      a[0][0] =1   a[0][1] =0   a[0][2] =0

      a[1][0] =0   a[1][1] =0   a[1][2] =0

      a[2][0] =0   a[2][1] =0   a[2][2] =8

 

     方式6

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

     通过方式6:对第一行第1列赋值为1,第二行第1列赋值为8,第三行整行不赋值。

     结果如下:

      a[0][0] =1   a[0][1] =0   a[0][2] =0

      a[1][0] =8   a[1][1] =0   a[1][2] =0

      a[2][0] =0   a[2][1] =0   a[2][2] =0

 

  (4)把二维数组定义时,行的总数量忽略:

    方式7

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

    通过方式7:定义时可省略总行数定义,由系统跟据元素的总个数再根据列数,来求得总行数为2,

          因为,初值有4个,所以,就是4除以2等于2行。

     结果如下:

      a[0][0] =1   a[0][1] =2  

      a[1][0] =3   a[1][1] =4  

 

   (5)把二维数组定义时,行的总数量忽略:

    方式8

    int a[ ][4]={{0,0,1},{},{0,8}};

     通过方式8:告诉系统有3行,因为,里面有3个大括号。

    结果如下:

      a[0][0] =0   a[0][1] =0   a[0][2] =1   a[0][3] =0

      a[1][0] =0   a[1][1] =0   a[1][2] =0   a[1][3] =0

      a[2][0] =0   a[2][1] =8   a[2][2] =0    a[2][3] =0

   另外,二维数组定义时,总列数的定义不能省略

=======================================================================

 

   4、如何引用二维数组中的"元素"。

     二维数组元素的引用,就是通过一个(数组名) ,加上2对(中括号),以及2个(下标)来说明要引用哪一个元素。

     即通过(行号)与(列号)就可以确定二维数中的元素,同时,行号或列号的下标都是从0开始。

 

      例子:

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

      a[1][0];

 

      例子分析:

      在例子中,第1个"下标"是"1",表示要引用第2行,而第2个"下标"是"0",表示要引用第1列,

      所以,就确定了第2行第1列的元素,就是4。

 

=======================================================================

  虽然,上面的二维数组看起来有点复杂,但是,大家不用担心,只要先做到记住二维数组的定义格式,

以及(方法1与方法2的)赋值方式,然后,多练习几次,再重复结合其它的知识点一起训练,再训练,

自然就可以从最初的记住,到熟练,然后,再到灵活运用了。

 

非常好,现在,我们已经掌握了C语言中的(二维数组),但是,如何去运行用它呢?

所以,我们就需要通过下方的链接,进入到C语言的代码训练中,然后,通过实践去加深对该知识点的理解与运用。

>>>下载训练环境与使用说明(使用真实的开发环境,结合游戏闯关进行 编程训练)