关于常量的一个异常——const.请大家教教小弟我,多谢了
关于常量的一个错误——const.......请大家教教我,,,谢谢了void count_sort(int* a,const int size_,const i
关于常量的一个错误——const.......请大家教教我,,,谢谢了
void count_sort(int* a,const int size_,const int k){
int b[size_];
int c[k];
}错误提示是:>c:\users\ya\desktop\professional_c++_12\professional_c++_12\计数排序.cpp(8): error C2057: 应输入常量表达式。。。。
可是我的size_和k明明就是常量啊。只不过是由参数传递过来的而已。。。,,,为什么呢?????
[解决办法]需要编译时常量
template<int size_, int k>
void count_sort(int* a){
int b[size_];
int c[k];
}
[解决办法] int b[size_];
int c[k];
这种形式无法在栈上动态分配空间的,得调用函数alloca才可以实现在栈上动态分配内存
[解决办法]2L正解。
const是运行时常量。
如果你改成用define,编译时常值。 这就可以了。
[解决办法]void count_sort(int* a,const int size_,const int k){
int b[size_];
int c[k];
}楼主,你这里的函数const,指的是const形参,即在函数中,不可改变此变量的值,但这里是按值传递的,所以函数调用传参时可以是const变量也可以不是const变量。故不能用来初始化数组。