C++ 对于每个循环打印一个数组
C++ For Each Loop Printing an Array
我目前正在学习编程和学习C++。我正在尝试使用 for each 循环来打印出一个数组,但我得到了一些奇怪的输出。这是我的代码。
#include<iostream>
using namespace std;
int main(){
int length;
cin >> length;
cout << "Enter " << length << " numbers!n";
int x[length];
for (int i : x){
cin >> i;
}
for (int i : x){
cout << i << endl;
}
return 0;
}
我运行了一个测试,这是我的输入和输出
5
Enter 5 numbers!
1
2
3
4
5
78344035
1
2031166200
32767
1528080880
如果有人能告诉我我做错了什么,我将不胜感激。谢谢
您的第一个循环将x
的每个元素复制到i
中,并且您每次都流式传输到该副本i
:
for (int i : x){ cin >> i; }
要流式传输到数组中,请按引用获取每个元素:
for (int& i : x){
cin >> i;
}
查看此答案
同样,您正在使用不是标准C++的VLA