C++中数组初始化方式包括:静态数组可全量、部分或省略大小初始化,全局/静态数组自动初始化为0;C++11支持统一初始化语法{};字符数组可用字符串字面量;动态数组通过new配合{}初始化;推荐使用std::array进行类型安全操作;多维数组用嵌套大括号初始化。

在C++中,数组的初始化有多种方式,具体使用哪种方式取决于数组类型(普通数组、静态数组、动态数组)、作用域以及是否需要默认初始化或指定值初始化。下面介绍几种常见的数组初始化形式。
1. 静态数组的初始化
这是最常见的数组初始化方式,适用于在栈上分配的固定大小数组。
全部元素显式初始化:
你可以为每个元素提供初始值。
int arr[5] = {1, 2, 3, 4, 5};
部分初始化:
立即学习“C++免费学习笔记(深入)”;
如果初始化列表中的元素少于数组长度,剩余元素会被自动初始化为0(对于基本类型)。
int arr[5] = {1, 2}; // 结果:{1, 2, 0, 0, 0}
省略大小声明:
如果你提供完整的初始化列表,可以不写数组大小,编译器会自动推断。
int arr[] = {1, 2, 3}; // 等价于 int arr[3]
全零初始化:
使用空的大括号可以将所有元素初始化为0。
int arr[5] = {}; // 所有元素为0
int arr[5] = {0}; // 所有元素为0
2. 使用 uniform initialization(C++11 起)
C++11 引入了统一初始化语法,使用大括号 {} 可以更安全地初始化数组。
int arr[5] {1, 2, 3, 4, 5};
float values[3] {}; // 全部初始化为0.0f
这种形式避免了“最令人烦恼的解析”问题,并且在各种容器和自定义类型中保持一致。
3. 字符数组的初始化
字符数组可以用字符串字面量初始化。
char str[] = “hello”; // 自动推断大小为6(包含’