C++中的数组初始化问题
作者:野牛程序员:2023-03-29 10:04:47 C++阅读 3041
在C++中,有多种方式可以初始化数组,以下是一些常见的方法:
使用大括号初始化器 {}:
int arr1[5] = {1, 2, 3, 4, 5}; // 初始化数组元素为1、2、3、4、5
int arr2[] = {1, 2, 3, 4, 5}; // 推导数组长度为5,初始化元素为1、2、3、4、5使用默认初始化:
int arr3[5] = {}; // 所有元素初始化为0使用赋值运算符 =:
int arr4[5]; arr4[0] = 1; // 为第一个元素赋值1
使用循环初始化数组:
int arr5[5];
for (int i = 0; i < 5; i++) {
arr5[i] = i + 1; // 初始化元素为1、2、3、4、5
}需要注意的是,如果使用大括号初始化器 {},必须确保初始化的值的数量不超过数组的大小;如果赋值运算符 =,必须逐个为数组元素赋值。
下面这种情况正确吗?:
int array[5];
array[5] = {1 , 2 , 3 , 4 , 5};这种写法是错误的。
在C++中,数组的大小是在定义时指定的,而且数组的下标从0开始,最大下标为 size-1(其中 size 是数组的大小)。因此,定义一个大小为5的数组 int array[5],其下标范围是从 0 到 4。
在给数组赋初值时,可以使用花括号 {} 来初始化数组元素。但是,如果使用了赋值号 =,则需要按照数组下标逐个给数组元素赋值。
在这个例子中,array[5] 表示访问数组中下标为5的元素,但是数组的大小是5,最大下标只能是4,因此这个语句访问了一个不存在的位置,是错误的。
正确的初始化方式可以是:
int array[5] = {1, 2, 3, 4, 5};或者:
int array[5]; array[0] = 1; array[1] = 2; array[2] = 3; array[3] = 4; array[4] = 5;
这两种方式都会将数组元素初始化为
1, 2, 3, 4, 5
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892

