#include <iostream>
using namespace std;
int main() {
int arr[10] = {};
for(auto element : arr)
{
cout<<element<<" ";
}
cout<<endl;
}
如果我写int arr[10] = {}
,arr
中的元素都是0
。但如果我只是int arr[10]
,则arr
中的元素是随机的。
所以我对int arr[10] = {}
感到困惑,我只是声明一个数组int arr[10]
,但我没有给它任何值,只有{}
。
答案 0 :(得分:5)
如果我写int arr [10] = {},arr中的元素都是0。
这就是语言的语法是如何工作的。在您的情况下,数组将初始化为零。
但是如果我只是在arr [10]中,arr中的元素是随机的。
在您的情况下,数组元素未初始化。您不应该读取未初始化的变量的值;否则你将触发未定义的行为。
答案 1 :(得分:2)
根据cpp参考网站(http://en.cppreference.com/w/c/language/array_initialization),这是如何将所有数组元素初始化为零:
int a [3] = {}; //无效的C但是有效的C ++方法将块范围数组清零
答案 2 :(得分:0)
int arr[10];
没有初始化任何东西,它分配的内存块大小为int
,而你正在获得该内存中的内容。
int arr[10] = {};
正在将所有int
块初始化为null / 0