概述
C++
支持数组数据结构,它可以存储一个固定大小的相同类型元素的顺序集合。数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量。
- 1. 数组初始化
- 2. char 数组
- 3. 指针、动态数组
1. 数组初始化
在 C++ 中要声明一个数组,需要指定元素的类型和元素的数量,如下所示:
通用格式:typeName arrayName[ arraySize ];
// 如: age 是一个数组,可容纳10个类型为int 元素。
int age[10];
- I. 只有在定义数组时才可以使用初始化。
- II. 不能将一个数组赋值给另一个数组。
int cards[4] = {1,2,3,4}; // 正确初始化 1
int age[4];
// 正确初始化 2
age[4] = {1,2,3,4}
// 错误1
age = cards;
// 错误2
- 此外还可以这样初始化:
int cards[100] = {1};
// 正确初始化 3: 第一个元素为1,后续99个元素为int默认类型0
short age[] = {1,2,3,4,5};
// 正确初始化 4: 需要编译器来计算元素个数
double score[3]{1.0, 2.0, 90.0}; // 正确初始化 5: c++11新增
double score[3] = {};
// 所有元素初始化为0
double score[3]{};
// 所有元素初始化为0
- 重点: 这里说一下数组初始化默认值
- I. 做全局变量时,不使用花括号
{}
时,元素全部初始化为类型默认值,如int-0
。 - II. 做局部变量时,不使用花括号
{}
时,元素为类型随机值。 - III. 使用花括号
{}
时,中数据按顺序初始化至数组内,剩余元素全部初始化为类型默认值,如int-0
。
int num[5];
// 1. 全局变量,默认int-0
int main() {
cout << "array num
:";
for (auto& i:num)
cout << i << ", ";
int score[5];
// 2. 局部变量,默认类型随机值
cout << "narray score:";
for (auto& i:score)
cout << i << ", ";
int age[5] = {1,2};
cout << "narray age
:";
// 3. 使用花括号‘{}’时
for (auto& i:age)
cout << i << ", ";
cout << endl;
return 0;
}
array num :0, 0, 0, 0, 0,
array score:2, 0, 4197709, 0, 0,
array age :1, 2, 0, 0, 0,
2. char 数组
- C-风格的字符串将字符存储与数组中,其性质如下:
- I. 以空字符
null-char
为结尾,空字符写作