当前位置:首页 C++ > 正文

C++中的数组初始化问题

作者:野牛程序员:2023-03-29 10:04:47 C++阅读 2559

在C++中,有多种方式可以初始化数组,以下是一些常见的方法:

  1. 使用大括号初始化器 {}:

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
  1. 使用默认初始化:

int arr3[5] = {};    // 所有元素初始化为0
  1. 使用赋值运算符 =:

int arr4[5];
arr4[0] = 1;    // 为第一个元素赋值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],其下标范围是从 04

在给数组赋初值时,可以使用花括号 {} 来初始化数组元素。但是,如果使用了赋值号 =,则需要按照数组下标逐个给数组元素赋值。

在这个例子中,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
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击