C++—数组

数组是由一批相同类型的元素(element)的集合所组成的数据结构,分配一块连续的内存来存储。

语法:

<数据类型> <数组名>[<数组长度>];

数据类型:数组内存放的数据类型,如int、char,表示整型或字符型数组

数组名:和变量一样,提供一个标识符名称,遵循变量命名规范

数组长度:数组内元素数量(数组内存放的数据,每一个称之为一个元素)

int v[5];           定义了一个有5个整型元素的数组
char v[5];        定义了一个有5个char元素的数组
double v[5];        定义了一个有5个double元素的数组
string v[5];        定义了一个有5个字符串元素的数组
bool v[5];            定义了一个有5个布尔型元素的数组

数组的赋值:

int v[2];
v[0]=11;
v[1]=22;

int v[2]={1,2};

数组内包含多个元素,每个元素都有一个下标索引。下标索引从0开始,即下标0表示数组第一个元素。可以通过下标索引,访问数组内的各个元素。

数组内元素都是相同类型的,不同类型不可混搭。

数组的特点

特点1 任意类型均可构建数组

基本数据类型:int、float、double、char、string、bool等

复合数据类型:结构体、联合体等

指针类型:int*、char*、float*等

枚举类型:enum

float v1[] = {1.1, 2.2, 3.3, 4.4, 5.5};
double v2[] = {1.1, 2.2, 3.3, 4.4, 5.5};
char v3[] = {'a', 'b', 1, 2, 3};
string v4[] = {"林志铃", "蔡依临", "刘亦飞"};
bool v5[] = {0, 1, true, false};

// 枚举类型
enum Color { RED, GREEN, BLUE };
Color colors[] = {RED, GREEN, BLUE, GREEN, BLUE};

特点2 固定大小(无边界检查)

C++数组,一旦定义完成,其大小(长度)即固定。

C++不会做数组边界检查,即下标索引超出数组范围,编译过程中不会报错。

如果超出边界,程序不回报错,可能会修改到别的程序去,会导致程序崩溃!!!

特点3 内存连续且有序

数组内存空间是连续分配的,并且每个元素分配大小取决于存放类型

无论何时访问数组元素,均一致(手动修改值除外),如v[0],取出的都是数值1

也是基于此确保数组元素类型一致,比如int数组每个元素4字节的空间,无法存储double数值

通过 sizeof(数组)/sizeof(数组某元素) 可以得到数组元素个数

特点4 元素值可以修改

通过下标锁定元素,对存储值进行修改

特点5 数组变量不记录数据

数组变量v本身: 并非记录了数组内全部元素(即:不存数据)

而是记录了v[0]元素的内存地址

数组元素访问规律如下: 通过数组变量(如v)记录下标0元素内存位置,即可找到v[0]

通过v[0]地址 + 单个元素空间大小(如int数组,4字节),

即可找到v[1] 通过v[1]地址 + 4字节,即可找到v[2]

…… 以此类推

字符数组

char s[] = "hello";
char s[] = {'h', 'e', 'l', 'l', 'o', '\0'};

在字符数组中,额外在最后添加一个元素\0(空字符),作为结束标记

这种规律不适用中文(ASCII无法表示),中文请使用string类型不要使用char数组

多维数组

多维数组:对数组进行嵌套,即数组内的每个元素依旧是数组。

根据嵌套的层次可以有:二维数组、三维数组、四维数组、…等更多维度的数组。

多维数组实际应用很广泛,特别是二维、三维数组。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值