我在编程课上学习2D数组。我的老师在没有解释的情况下使用了一些东西,我很好奇为什么我们会使用它。因为它与符号有关,所以我不知道如何搜索或搜索它,因为这些符号被用于搜索本身。不管怎样,代码是这样的:
int small[26]= {0}, large[26]={0}, i;
为什么在0附近需要花括号?
这个程序--这段代码是检查文件的一部分,查找字母表中的每一个字母,并分别对它们进行计数。
发布于 2014-04-16 22:04:35
它可以写得更简单
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将等于tp 1,a1将等于2,而所有其他元素都将等于0。
您可以省略数组的大小。例如
int a[] = { 1, 2, 3, 4, 5 };在这种情况下,编译器将分配数组中的元素,就像初始化程序列表中有初始化器一样。
记录(仅在C++中有效。在C中是不允许的)
int a[5] = {};等于
int a[5] = { 0 };也就是说,数组的所有元素都将由0初始化。在最后一条记录中,第一个元素显式地由零初始化,所有其他元素也由零初始化,因为它们在初始化程序列表中的初始化项没有被指定。
与初始化标量对象的方式相同。例如
int x={ 10 };
对于标量对象,唯一的区别是只能指定一个初始化程序。您甚至可以在没有赋值运算符的情况下写作。
int x { 10 };你也可以写
int x {};在这种情况下,x将被0初始化。
发布于 2014-04-16 21:58:22
int Array[26]= {0};将该数组中的所有元素初始化为0。
正如BryanChen在下面提到的那样:
Note: int Array[26]= {1}; will initialize first element to 1 and others to 0. 发布于 2014-04-16 21:57:11
默认情况下,本地作用域的常规数组(例如,在函数中声明的数组)未初始化。这意味着它的任何元素都不会被设置为任何特定的值;它们的内容在数组声明的那一点上是未定的。
但是,数组中的元素可以在声明时显式初始化为特定值,方法是将这些初始值封装在大括号{}中。
https://stackoverflow.com/questions/23120856
复制相似问题