要在xth位置访问数组indice,我们可以使用某种插图,如下所示
#include<iostream>
using namespace std;
int main(){
float i[20];
for(int j=0;j<=20;j++)
i[j]=0;
}
Run Code Online (Sandbox Code Playgroud)
但是下面的代码不起作用
#include<iostream>
using namespace std;
float oldrand[55];
int jrand;
void advance_random(){
int j1;
float new_random;
for(j1=0;j1<=23;j1++){
int temp = j1+30;
new_random = (oldrand[j1]) - (oldrand[temp]);
if(new_random <0.0)
new_random = new_random+1;
oldrand[j1] = new_random;
}
for(j1=24;j1<=54;j1++){
new_random[j1] = oldrand[j1] - oldrand[j1-23];
if(new_random[j1]<0.0)
new_random[j1] = new_random + 1;
oldrand[j1]=new_random;
}
}
Run Code Online (Sandbox Code Playgroud)
我收到以下错误
ga.cpp:20: error: invalid types ‘float[int]’ for array subscript
ga.cpp:21: error: invalid types ‘float[int]’ for array subscript
ga.cpp:22: error: invalid types ‘float[int]’ for array subscript
Run Code Online (Sandbox Code Playgroud)
我无法在代码中找到错误请帮助我
正如其他人所说,new_random未声明为数组,因此编译错误.
而且,这种类型的循环
float i[20];
for(int j=0;j<=20;j++)
i[j]=0;
Run Code Online (Sandbox Code Playgroud)
你将耗尽数组边界并得到未定义的行为.适当的形式是
for(int j=0;j<20;j++)
Run Code Online (Sandbox Code Playgroud)
这是因为在C/C++中,数组从0开始索引,因此包含20个元素的数组包含从0到19索引的元素.