数组初始化给出垃圾值[重复]
Posted
技术标签:
【中文标题】数组初始化给出垃圾值[重复]【英文标题】:Array Initialization giving garbage values [duplicate] 【发布时间】:2015-02-28 20:08:00 【问题描述】:我想用 一个值 初始化所有数组元素,所以我想使用 选项 1,较短的版本。但这似乎不起作用。但是 选项 2 有效。当我尝试通过选项 1 进行初始化时,任何人都可以解释发生了什么问题..
int main()
int arr[5] = 2 ; // option 1
int arr1[5] = 2, 2, 2, 2, 2 ; //option 2
for (int i = 0; i < 5; i++)
cout << arr[i] << " ";
for (int i = 0; i < 5; i++)
cout << arr1[i] << " ";
【问题讨论】:
cplusplus.com/doc/tutorial/arrays 为什么要投反对票。我添加了代码 sn-p。清楚地问出了我的疑问。不知道 SO 对我有什么期望。 谁能解释为什么我得到了反对票。我可能错过了存在重复的问题。这就是为什么 DUPLICATE 选项可以通知 SO 用户的原因。为什么是负面注释! 听起来很粗鲁,所以 SO 不喜欢人们在没有进行基础研究的情况下提出问题。一般来说,如果第一次在谷歌上找到问题的答案,你可能会被否决。 我搜了一下,看不懂,然后问。无论如何点! :) 【参考方案1】:int arr[5] = 2 ;
您只为第一个元素提供初始值。在这种情况下,所有元素都默认初始化为该类型,即在您的情况下为 0。
【讨论】:
我明白你的意思,但它限制了数组初始化的使用,对吧?因为通常百万分之一的情况下,我们只想初始化数组中的第一个值,其余的为 0。通常,如果我们希望数组初始化为一个值,我们希望整个数组设置为该特定值.我说得有道理吗? 这只是一种语言结构。你可以通过 std::fill_n 做你想做的事。 为什么当我把它分成两行时相同的语法不起作用。 'int arr[5];'arr[5] = -1;
。它开始提供垃圾值。
因为 int arr[5];没有初始化任何元素。
但是我确实在第二行初始化了它,对吧?我在第二行之后使用 cout。以上是关于数组初始化给出垃圾值[重复]的主要内容,如果未能解决你的问题,请参考以下文章