【发布时间】:2014-05-16 15:43:38
【问题描述】:
所以我在 C++ 中创建了一个未初始化的数组并尝试打印最后一个元素以查看输出是什么。未初始化数组中的每个元素的值都应该是 0(对吗?),但我得到的输出是别的东西。这是 main 函数的样子:
int main() {
int i[5];
cout << i[4] << '\n';
}
运行此输出1606416656(每次相同的数字)并带有换行符。但是,将'\n' 更改为endl 会将输出更改为0,并带有换行符。
这是为什么呢?
此外,即使使用'\n',尝试打印i[3] 而不是i[4] 也会正确输出0。为什么?
我做了一些研究并在某处读到 '\n' 不会“刷新缓冲区”,而 endl 会。这个“刷新流”实际上是什么意思,这是影响输出的原因吗?
【问题讨论】:
-
int i[5]={};会将您的元素初始化为 0。
标签: c++ newline line-breaks flush endl