2021-12-02 19:42:03
在C++中,一维数组用于存储相同类型的数据集合,通过索引访问元素。其定义需指定数据类型、数组名和大小,声明与初始化方法如下:
一、一维数组的声明基本语法为:数据类型 数组名[数组大小];
可在声明时通过花括号初始化,常见方式如下:
逐个赋初值用花括号列出所有元素的值:
int arr[5] = {1, 2, 3, 4, 5}; // 初始化5个整数部分初始化若初始化列表元素少于数组大小,剩余元素自动初始化为0:
int arr[5] = {1, 2}; // 结果:{1, 2, 0, 0, 0}全部初始化为0使大差用空花括号或仅写一个0:
int arr[5] = {0}; // 所有元素初始化为0省略大小(自动推断)声明时初始化可省略数组大小,编译器根据初始值数量确定:
int arr[] = {1, 2, 3, 4}; // 等价于 int arr[4] = {1, 2, 3, 4};下标枝陵从0开始
arr[0]是第一个元素,arr[n-1]是最后一个元素(n为数组大小)。
访问越界(如arr[5]在大小为5的数组中)会导致未定义行为。
数组名代表首地址
数组名是常量指针,指向数组首元素地址,不可猛仿戚被赋值或修改。
示例:int arr[5];int* ptr = arr; // 合法:ptr指向arr首地址arr = ptr; // 非法:数组名不可被赋值
编译时确定大小
C++标准要求数组大小在编译时确定,不能用变量直接定义(除非使用动态内存分配或编译器扩展的变长数组)。
动态数组示例(需<vector>):#include <vector>int n = 5;std::vector<int> dynamicArr(n); // 动态大小数组
初始化状态
未初始化的局部数组元素值是未定义的,全局数组默认初始化为0。
建议显式初始化以避免未定义行为。
掌握这些方法后,可结合循环高效处理批量数据,同时注意边界和初始化状态以避免错误。