int n=9;
const int m=n;
int a[m];
cout<<sizeof(a)<<endl;
上面这段代码,在g++可以通过,在bcb下编译通不过。
const int m=n;
int a[m];
cout<<sizeof(a)<<endl;
上面这段代码,在g++可以通过,在bcb下编译通不过。
g++自己增加了支持用变量做数组元素个数。其它编译器一般都不支持,C++标准也不支持。
const int m虽然有const,但是却用的一个变量来初始化它,所以并不是一个直接的常数,不能用做数组元素个数。
const int m虽然有const,但是却用的一个变量来初始化它,所以并不是一个直接的常数,不能用做数组元素个数。
本文探讨了使用变量作为数组长度在不同编译器下的表现差异。特别关注g++与bcb之间的区别,并解释了为何某些编译器不支持此特性。
2848

被折叠的 条评论
为什么被折叠?



