C语言入门:基础篇04 数组

数组是变量的组合,用于批量定义相同类型变量。一维数组按编号访问,二维数组如矩阵,通过行号和列号访问。变长数组在执行时确定长度。文章详细介绍了数组的定义、使用方式、遍历和初始化,包括一维数组的下标范围、二维数组的双层遍历以及变长数组的特点和限制。

什么是数组?数组就是变量的组合,是一种批量定义相同类型变量的方式。

所谓一维数组,就是把变量排成一排,通过编号访问。

所谓二维数组,就是把变量排成一个矩阵,通过行号和列号来具体访问某个变量。

所谓变长数组,就是定义数组时,使用变量作为数组的长度,这种数组称为变长数组。


1 一维数组

1.1 定义

        类型名 数组名[数量];         

        例如:

    int arr[5];

1.2 使用方式       

        数组名[下标];

 *注意:

          数组的长度一旦确定,无法改变

          下标从0开始,范围0~数量-1

1.3 数组遍历

        数组的数据从头到尾显示或访问;

        一般用法是与for循环配合,把循环变量i当做数组下标。

1.4 初始化

        类型名 数组名[数量]={数据1,数据2...};

 *注意事项:

  ① 数组与变量一样,默认值随机,所以一般都要先初始化

  ② 数组不能整体初始化,只能逐个初始化。

            int arr[20]=0 这是错误的。

  ③ 这种初始化的语法只能定义数组时使用。

  ④ 初始化数据过多,编译器会产生警告并将多余的数据丢弃。

  ⑤ 初始化数据过少,编译器会自动补0。

  ⑥ 初始化数据可以全部省略,只写{},相当于全部成员初始化为0。

  ⑦ 如果有初始化数据,则可以省略数组数量,因为编译器会自动统计数据个数然后确定数组数量。

              计算数组的总字节:sizeof(数组名);

              计算数组成员的字节数:sizeof(arr{0});

              计算数组长度的公式:sizeof(arr)/sizeof(arr[0]);


2 二维数组

2.1 定义

        类型名 数组名[行数][列数];

        例如:

    int arr[4][5];

2.2 使用方式

        数组名[行数][列数];

*注意:

        行下标:0~行数-1;

        列下标:0~列数-1;

2.3 数组遍历

        一般需要与双层for循环配合,外层循环负责遍历行,内层循环负责遍历列。

        例如:

    int arr[4][5];

    for(int i=0; i<4; i++)
    {
        for(int j=0; j<5; j++)
        {
            printf("%d ",arr[i][j]);
        }
        printf("\n");
    }

2.4 初始化

        类型名 数组名[行数][列数]={{第1行数据},{第2行数据},{第3行数据}...};

*注意事项:

         {}内数据可以全部省略,则自动补0;

         {}内数据不省略和列数不省略,行数可以省略,编译器会自动计算行数;

         不能省略二维数组的列数。


3 变长数组

        特点:在代码编译期间数组的长度是不确定的,只有当执行到数组定义的语句时,长度才能确定下来,并且一旦确定,长度也无法改变

        优点:可以根据实际情况来确定数组的长度,从而节约内存

        缺点:初始化发生在编译期间,而可变长数组的长度确定发生在运行期间,因此可变数组无法进行初始化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

就酱77叭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值