【发布时间】:2020-09-03 23:53:23
【问题描述】:
我对此代码有一些疑问:
#include <iostream>
using namespace std;
int main() {
int i;
int w[10];
cin >> i >> w[i];
cout << i << ' ' << w[i];
return 0;
}
标准输入是:
3 10
在我的电脑(Win10 64bit,gcc 版本:g++ 6.3.0)中,出现分段错误。
但其他环境(如https://ideone.com/i5Vd7o)可以执行它。
当我编辑这个部分时它工作正常:
cin >> i >> w[i];
到这里:
cin >> i;
cin >> w[i];
所以出现了两个小问题:
- istream 分配的标准是什么?分配的变量应该从当前行还是下一行读取?
- 如果编译器同时支持,哪一个对读者来说是“好代码”?
【问题讨论】:
-
<<是错字吗? -
是的,我犯了一个错误。谢谢!
-
链接到在线编译器时,通常会链接到实际代码,这样人们就可以点击运行了。
-
@kkorona,你试过把
int i改成int i = 0吗? -
第一个在 C++ 17 之前有未定义的行为。
标签: c++ coding-style code-generation iostream