c++从零开始---复合类型之数组

本文详细介绍了C++中的数组,包括如何创建数组、数组索引的使用以及数组的初始化方法。强调了数组元素的声明、初始化规则,如数组长度必须为常量,初始化时可以提供部分值,未指定的元素将默认为0。同时,讨论了列表初始化的注意事项,如禁止缩窄转换和数组赋值的限制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数组能够储存多个同类型的值。比如可以储存 12 个 short 值用于表示每个月的天数,或者 7 个 float 值表示一周内每天的花销。每个值都储存在一个独立的数组元素中,计算机在内存中依次储存数组的各个元素。

1、创建数组

使用声明语句创建数组。通用格式如下:
typeName arrayName[arraySize];
数据类型 数组名 【 数组元素的个数 】
代码示例如下:

int day_numbers_everymonth[12]
float pay[7]

注意:arraySize 所代表的元素数目,其值必须为整型常数,或者为 const 值,即不能为变量。

2、数组索引

很多时候,对数组的操作实际上是对其各个元素进行操作,即可以单独访问数组元素。
c++ 使用带索引的方括号表示法来指定数组元素,并且索引从零开始编号
比如:pay[0]指的是 pay 这个数组的第一个元素,而 pay[6] 值得是最后一个元素。
声明一个数组,那么对于数组内的所有元素都进行了声明,这样就创建了大量的变量,当需要使用一系列同类型的变量时,比如 pay,使用数组是一个更好的选择。

3、数组初始化方法

使用大括号{}初始化(列表初始化)。c++ 使用大括号的初始化是一种通用的初始化方法,可用于所有类型。

1、初始化数组时,可省略等号:

float pay[7] {3.2, 5.3, 6.0, 3.1, 6.4, 4.4, 5.3};

2、可不在大括号内加入数值,这样所有元素都设置为零:

float pay[7] {};

3、列表初始化禁止缩窄转换:

int pay[7] {3.2, 5.3, 6.0, 3.1, 6.4, 4.4, 5.3};
// 不能通过编译,因为浮点数转换为整型是缩窄操作
char a[] {'h',12000, 'b'};
// 不能通过编译,因为 char 类型为 8 位字符,12000 超过了char 的取值范围
char b[] {'h',121,'b'};
// 可以编译,121 未超过 char 取值范围

4、数组初始化规则

1、只有在定义数组时才能使用初始化,以后就不能了,也不能将一个数组赋给另一个数组。

float pay[7] {3.2, 5.3, 6.0, 3.1, 6.4, 4.4, 5.3}; // 符合语法
int a[4];
a[4] = {4,3,2,5}; // 不符合语法,不能初始化
a = pay; // 不符合语法,不能赋值

2、初始化数组时,提供的值可以少于数组的元素数目,即只对数组靠前的部分进行初始化,那么其它元素都将被编译器设置为 0。

float pay[7] {3.2, 5.3};

3、想要将所有元素都设置为 0,那么只需要将第一个元素初始化为 0。

float pay[7] {0};

4、如果初始化数组时方括号为空,c++ 编译器将计算元素个数,并且该数组的元素个数就确定了:

float pay[ ] {3.2, 5.3, 6.0, 3.1, 6.4, 4.4, 5.3};
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值