错误:数组绑定在']'标记之前不是整数常量。如何使变量成为长度。
#include<iostream>
using namespace std;
int e;
int a()
{
int b=3;
return b;
}
e=a();
int d[e]={12,2,3};
int main()
{
cout<<d[4]<<endl;
return 0;
}
e=a();
之类的赋值不能存在于函数外部。
int d[e];
也不是有效的C ++,因为e
需要是一个编译时可评估的常量表达式。
所以编译失败了,尽管有一个神秘的错误。
请注意,由于您尝试访问数组边界之外的元素,因此d[4]
的行为将是未定义的。
试试这个:
#include <iostream>
using namespace std;
int a(){
int b = 3;
return b;
}
int main(){
int e;
e = a();
int d[e] = {12,2,3};
cout << d[0] << endl;
return 0;
}
正如你所看到的,向量的大小只有3(记住在c ++中0表示一个位置),所以在这种情况下你只需要打印3个值,d[0],d[1],d[2]
,记住你不能指定一个值在a之外功能。此外,如果您计划将全局变量分配给数组绑定,则必须保持不变。像这样:const int e = 3;
,希望它有所帮助。