还可以写得更简单
int small[26]= {}, large[26]={}, i;
在本例中,大括号表示数组的初始值设定项列表。
例如,假设您要定义一个包含元素 1、2、3、4、5 的数组。
你可以写
int a[5];
a[0] = 1;
a[1] = 2;
a[2] = 3;
a[3] = 4;
a[4] = 5;
然而,C++ 允许在定义数组时为其分配元素。等效的记录将看起来
int a[5] = { 1, 2, 3, 4, 5 };
如果初始化器小于数组的大小,则剩余元素将用零初始化。例如
int a[5] = { 1, 2 };
在这种情况下,a[0] 将等于 1,a[1] 将等于 2,所有其他元素将等于 0。
您可以省略数组的大小。例如
int a[] = { 1, 2, 3, 4, 5 };
在这种情况下,编译器将分配与初始值设定项列表中的初始值设定项一样多的数组元素。
Record(仅在C++中有效。在C中不允许)
int a[5] = {};
相当于
int a[5] = { 0 };
也就是说,数组的所有元素都将初始化为 0。在最后一个记录中,第一个元素显式地初始化为 0,所有其他元素也初始化为 0,因为初始化器列表中的初始化器未指定。
您也可以用同样的方式初始化标量对象。例如
int x = { 10 };
唯一的区别是,对于标量对象,您只能指定一个初始值设定项。您甚至可以不使用赋值运算符来编写
int x { 10 };
你也可以写
int x {};
在这种情况下,x 将被初始化为 0。