错误:数组绑定在']'标记之前不是整数常量。如何使变量成为长度。
#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;
}
答案 0 :(得分:1)
e=a();
之类的作业不能存在于函数外部。
int d[e];
也无效C ++,因为e
需要是编译时可评估的常量表达式。
因此编译失败了,虽然有一个神秘的错误。
请注意,由于您尝试访问数组范围之外的元素,d[4]
的行为将未定义。
答案 1 :(得分:-2)
尝试一下:
#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]
,请记住,您可以不要在函数之外分配值。同样,如果您打算将全局变量分配给数组绑定,则它必须是常量。像这样:const int e = 3;
,希望对您有所帮助。