【发布时间】:2018-09-15 10:57:06
【问题描述】:
我以前用 javascript 编写代码,但我的新学校强迫我学习 c++。 我是这门语言的新手,这就是问题所在:
在javascript中我可以写这样的代码:
for(let i = 0; i < 10; i++){
var variable[i] = i+3;
}
for(let j = 0; j < 10; j++){
console.log(variable[j]);
}
您可能会说“为什么不直接将代码写入 1 for 循环”,但这只是示例。
现在我正在尝试将上面的代码重写为 cpp:
int n,k,w;
cin>>n>>k;
for(int i = 0; i < n; i++){
int w[i];
cin>>w[i];
}
//some code here
for(int i = 0; i < n; i++){
cout<<w[i];
}
这就是问题所在。如何计算索引为 i 的所有变量 w,导致我收到错误 [Error] invalid types 'int[int]' for array subscript.
【问题讨论】:
-
int w[i];不是有效的标准 C++(一些编译器支持它作为扩展)。另外,为什么不直接在for循环之外声明数组? -
为了可读性,避免 for (int i =.... 在函数顶部声明 i: int i; then for (i = ....
-
@peakpeak 这与可读性完全相反,这就是为什么
C(默认为C++)后来摆脱了强制在函数顶部声明的变量声明限制。 -
Fureeish:没错。保持模糊。没有线索!