C++中的数组初始化问题
作者:野牛程序员:2023-03-29 10:04:47 C++阅读 2559
在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