C++ 对于每个循环打印一个数组

C++ For Each Loop Printing an Array

本文关键字:一个 数组 于每个 循环 打印 C++      更新时间:2023-10-16

我目前正在学习编程和学习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

相关文章: