我是 C++ 新手。下面是输入和显示数组的代码——很容易理解事物的工作原理。
int main() {
int N, i;
int A[N];
cin >> N;
for (i = 0; i < N; i++) {
cin >> A[i];
}
for (i = 0; i < N; i++) {
cout << A[i];
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输入是:
4
1 2 3 4
Run Code Online (Sandbox Code Playgroud)
输出是:
12
Run Code Online (Sandbox Code Playgroud)
我已将我的代码更正为:
int N, i;
cin >> N;
int A[N];
Run Code Online (Sandbox Code Playgroud)
这可以正确显示数组。
究竟发生了什么?在初始化 A[N] 之前 N 应该有一个值吗?但为什么我最初的代码不起作用呢?这与等级制度有关吗?如果是这样,我怎样才能正确处理我的优先事项?
如果N初始化为一个大值,那么N接下来会有一个特定数字的输入,如果这样的话,为什么即使N=9,输出仍然是相同的:12?