上面说第二种是正确的请注意。
两种都不可以。你光声明的话可能编译器不会报错,
但是,你赋值试试就知道了
例如:
const int n = 10;
int a[n] = {0};
不相信的可以自己试试。
测试环境Dev-C++(gcc)
有错误variable-sized object may not be initialized
意思是,变量大小的对象不能被初始化。
究其原因,请大家参考下面提供的const限定符的具体意义,
const只是限定该函数不可被修改。并不是真正意义上的常量。
宏定义不失为一种方法。不然就malloc、free或者new、delete。
解说完毕。
另:引用一篇文章里的:
关键字const有什么含意?
我只要一听到被面试者说:"const意味着常数",我就知道我正在和一个业余者打交道。去年Dan Saks已经在他的文章里完全概括了const 的所有用法,因此ESP(译者:Embedded Systems Programming)的每一位读者应该非常熟悉const能做什么和不能做什么. 如果你从没有读到那篇文章,只要能说出const意味着"只读"就可以了。尽管这个答案不是完全的答案,但我接受它作为一个正确的答案。(如果你想知道更详细的答案,仔细读一下Saks的文章吧。)
建议看一下
http://linux.chinaitlab.com/c/713810_2.html**补充一下。我说的是C语言。不是C++。
C++的话第一种是错误的,第二种正确