const int x=10;
这种情况下,可以将每次用到的x均用10来替换
const int x=func();
这种情况下就只是说x初始化后不再允许改变。
所以,当一个变量标注为CONST时,并不能保证它一定是每一次执行都不会变的值。
int fn() {
srand(time(NULL));
int x = rand() % 1000;
return x;
}
void main() {
const int a = fn();//每次执行得到的a的值各不相同
cout << a;
getchar();
}
constexpr就更加严格,它能保证它定义的变量一定可以用一个确定的数字来替换,而const不能。