所以,如果我这样做:
int a[5];
该数组将包含垃圾值。
如果我这样做:
int a[5] = {};
现在它将包含全零,即使我们没有用0来初始化任何这些值。
那么,这里发生了什么?
答案 0 :(得分:2)
有关详情,请参阅此处:http://www.cplusplus.com/doc/tutorial/arrays/
默认情况下,本地范围的常规数组(例如,在函数中声明的数组)保持未初始化状态。这意味着它的所有元素都没有设置为任何特定值;在声明数组时,它们的内容是不确定的。
但是,通过将这些初始值括在大括号{}中,可以在声明时将数组中的元素显式初始化为特定值。 初始化程序甚至可以没有值,只有大括号:
int a[5] = { };
这将创建一个包含五个int值的数组,每个值都使用零值
进行初始化
答案 1 :(得分:0)
你用0来初始化它。
类似地,
int a[5] = {1};
意味着第一个元素用1初始化,其余用0开始。
答案 2 :(得分:0)
答案 3 :(得分:0)
你的意思是什么"发生了什么"?你刚刚告诉我们发生了什么 第二个例子对值进行零初始化,而第一个例子则没有!
现在它将包含全零,即使我们没有用0来初始化任何这些值。
是的,你写了= {}
。这意味着什么。