关于const有关问题
关于const问题为什么const int b5char m[b]可以但是int a5const int ba(这里初始化没报错)char m[b
关于const问题
为什么const int b=5;char m[b];可以
但是int a=5;const int b=a;(这里初始化没报错)char m[b]就不行了
[解决办法]
const int b=a;
这只是说b代表的那篇内存b自己不能修改而已,而那篇内存的初值在编译时还不可知,所以不能初始化
[解决办法]
前一种写法编译器可以确定b中拥有一个常数。而后一种写法虽然也给了它一个常数,可却是通过变量赋给它的,结果编译器就弄不清b里面究竟会不会有一个常数了。
[解决办法]
[解决办法]仅仅是一个优化而已。
如果你加上 const volatile int b=5; 你就知道还能不能编译了。(不要用支持c99的编译器)
[解决办法][解决办法]就一个优化的缘故
const volatile int a=5; int b[a];你看看还能否编译成功 (c99编译器除外)
[解决办法][解决办法]不要纠结各种常量了,这个世界上唯一不变的就是变化。用API WriteProcessMemory还能修改正运行的其它进程的内存里面的所谓常量呢!