C++数组

一维数组

  • C++使用数组来实现一次性声明很多变量的功能,具有以下特性:
    • 创建后的数组大小固定
    • 同一数组中的元素类型相同
    • 是一系列数据顺序集合

在计算中,要存储数据就需要用到变量;但在处理大量的数据时,太多的变量就不大好处理了。

数组声明

  • 在C++中声明数组时,需要指定元素类型数组名称以及数组长度
元素类型 数组名称[数组长度];
- 数组的元素类型只需指定一次,代表整个数组中所有元素的类型
- 数组长度代表数组容纳元素的数量,必须是一个**固定的整型常量**,

Tips:在声明数组后,内存会为数组分配一块连续的空间。我们可以从内存的角度再来理解一下数组:数组中包含若干个元素,每个元素都是一个变量,因此每个元素都是有地址的,而数组名其实表示的就是第一个元素的起始地址

数组访问元素

  • 声明一个数组之后,数组中的每个元素可以通过索引来访问
    • 数组的索引的范围是从 0数组长度-1
    • 数组元素的访问形式是数组名称[索引序号]

数组初始化

  • 在C++中,数组的初始化有如下两种方式:

    • 一种初是在声明的同时,使用大括号包含对应数值,直接对整个数组初始化
    • 另一种初始化方式是在声明之后,逐个访问数组元素进行一一初始化赋值
    #include <iostream>
    using namespace std;
    
    int main() {
        // TODO 声明时对整个数组初始化
        // TODO 第一种:大括号中包含 1,3,5,7,9,11这6个值
        int sales_1[6] = {1, 3, 5, 7, 9, 11};
        
        // TODO 第二种:大括号中包含 1,3这2个值,其他默认初始化为0
        int sales_2[6] = {1, 3};
        
        // TODO 第三种:大括号中包含 1,3,5,7,9,11这6个值,但是不指定数组的长度,会得到一个长度为6的数组
        int sales_3[] = {1, 3, 5, 7, 9, 11};
        
        // TODO 声明后对每个元素依次赋值
        int sales_4[6];
        for (int i = 0; i < 6; i++) {
            sales_4[i] = 2 * i + 1;
        }
        
        return 0;
    }
    

多维数据

除了一维形式的数据,现实生活中也有多个维度的复杂数据。

  • 在C++中,每一个元素也是数组的数组称为多维数组。
    • 例如,二维数组可以看作是每个元素都是一维数组的数组

二维数组的用法

二维数组的声明

  • 声明二维数组需要在命名的同时,指定元素的类型以及每个维度的长度:
元素类型 数组名称[数组第一个维度长度][数组第二个维度长度]

二维数组访问元素

  • 类似一维数组,二维数组依然通过索引来访问元素
    • 数组每一维度的索引范围是从 0维度长度-1
    • 数组元素的访问形式是数组名称[行索引][列索引]

二维数组的初始化

二维数组的初始化有两种方式:

  • 第一种方式是在声明时对整个二维数组初始化:

二维数组初始化的程序段(一):

int scores[5][3] = {  
 {8, 4, 6} ,   /*  初始化索引号为 0 的行 */
 {5, 6, 3} ,   /*  初始化索引号为 1 的行 */
 {3, 2, 4} ,   /*  初始化索引号为 2 的行 */
 {8, 7, 6} ,   /*  初始化索引号为 3 的行 */
 {7, 9, 8} ,   /*  初始化索引号为 4 的行 */
};

// 或者省略掉第二层的大括号
int scores[5][3] = {8, 4, 6, 5, 6, 3, 3, 2, 4, 8, 7, 6, 7, 9, 8};

Tips:在这种情况下,如果给出的元素数量少于本身的数量,那么后面的依然会被默认初始化为0

  • 第二种初始化方式是在声明后分别对每一个元素逐一进行访问,并且进行初始化赋值
    • 可以借助for语句的嵌套来实现

二维数组初始化的程序段(二):

int scores[5][3];
for (int i = 0; i < 5; i++) {
    for (int j = 0; j < 3; j++) cin >> scores[i][j];
}

Tips:在这种情况下,需要事先明确每个for语句的循环次数。否则,可能会产生数组越界等问题。

二维数组的输入输出

在C++中,和一维数组一样,普通的二维数组也只能对单个元素进行输入输出。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值