C++ 为什么这个数组是错误的。错误:数组绑定在';]之前不是整数常量';代币
错误:数组绑定不是“]”标记之前的整数常量。如何使变量成为长度C++ 为什么这个数组是错误的。错误:数组绑定在';]之前不是整数常量';代币,c++,arrays,C++,Arrays,错误:数组绑定不是“]”标记之前的整数常量。如何使变量成为长度 #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; } #包括 使用名称空间std; INTE; int a() { int b=3;
#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;
}
#包括
使用名称空间std;
INTE;
int a()
{
int b=3;
返回b;
}
e=a();
int d[e]={12,2,3};
int main()
{
cout诸如e=a();
之类的赋值不能存在于函数之外
<> >代码> int d[e];也是无效的C++,如<代码> e <代码>需要编译时可计算的常量表达式。< /P>
因此,编译失败了,出现了一个尽管很神秘的错误
请注意,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;
}
#包括
使用名称空间std;
int a(){
int b=3;
返回b;
}
int main(){
INTE;
e=a();
int d[e]={12,2,3};
不能将代码作为文本而不是图像发布。除了错误d[4]
将产生未定义的行为,因为您正在索引数组的末尾。简短的回答是:您不能。无论如何,我们完全不清楚为什么需要数组大小变量,当您使用3个元素初始化它时,代码都是关于细节的,如果我不介意您问题中的细节,几乎什么都没有了;)您可以使用std::vector
但是我写int e=a()怎么样?这行不通,因为数组必须在编译时具有已知的大小。这是可行的,因为它是一个常量:#include使用名称空间std;const int maxementos=6;类S{public:void muestra(int v[maxementos]){for(inti=0;i