多维数组的概念与示例

问题

对于数组来说有类型的概念吗?数组中的元素只能是变量(int,float,ect.)吗?

数组类型

-数组类型由元素类型和数组大小共同决定

-数组类型的具体表现类型为:type[N]

         int  a[10]={0};    //类型:int[10]

         float  b[5]={0};   //类型:float[5]

         int  aa[5]={0};    //类型:int[5]

         int  bb[8]={0};    //类型:float[8]

         int  c[10];           //类型:int[10]

         int i;

         for(i<0;i<10;i++)

              c[i]=a[i];          //相同类型数组的“赋值操作”

实践操作

 

  • 数组中的元素可以是变量,也可以是其它程序元素
  • 当数组中的元素是另一个数组时,就构成了多维数组
  • c语言中的二维数组定义:type Name[N1][N2]
  • 二维数组可看作数学中的矩阵 

a11  a12   ...   a1n

a21   a22   ...   a2n

....    ...         ...     ...

am1      am2    ...       amn

  • 注意

二维数组的本质还是就是数组,即:数组中的每一个元素是数组!!

int a[3][4]     //定义一个数组,数组中有3个元素

                    //每个元素的类型为 int[4]

(a[1])[2]=2;   //对第1个数组中的第2个变量赋值

a[2][3]=2;     //对第2个数组中的第3个变量赋值

a[3][0]=0;      //越界

a[0][4]=0;      //越界

 

二维数组的初始化

-方式一:int [2][3]={ {1,2},{4,5}};

-方式二:int [2][3]={1,2,3,4};

-方式三:int [2][3]={0};

-方式四:int a[ ][3]={ {1,2,3},{4,5,6}};

- 方式五:int a[ ][3]={1,2,4,5};

注意

-二维数组能且仅能让编译器自动确定第一维的大小

-第二维大小必须显示给定,即:数组元素的类型必须正确合法

-第一维大小自动确定的方法:(初始值个数除以第二维大小)向上取整

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

        int  s1=sizeof(a) / sizeof(a[0]);

        int  i=0;

        int  j=0;

        for(i=0;i<s1;i++)

{

          for(j=0;j<3;j++)

     {

         printf("a[%d][%d]=%d\n",i,j,a[i][j]);

      }

}

实践操作

多维数组

-三维数组定义:一个数组,每个元素为一个二维数组

  语法:type Name[N1][N2][N3];

-四维数组定义:一个数组,每个元素为一个三维数组

   语法:type Name[N1][N2][N3][N4];

小结

  • 数组类型由元素类型和数组大小共同决定(type[N])
  • 数组中的元素可以是变量,也可以是其它程序元素
  • 当数组中的元素是另一个数组时,就构成了多维数组
  • 二维数组能且仅能让编译器自动确定第一维的大小

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值