c++ 中的常量问题
const int i = 100;
const int j = i + 10;
long address = ( long )&j;
char buf[ j + 10 ];
int main()
{
const char c = cin.get();
const char c2= c+ 'a';
}
i 是一个编译时间的常量, 但是J是一个计算出来的常量。因为i是一个常量, j作为一个从常量计算出来的值, 所以也是一个编译常量。
在long使用的时候,会强迫j分配一个空间,但是j作为一个编译时间的常量,他的值是不会被改变的。
const char c = cin.get(); c会被强制分配一个storage,存储输入的值,但是这个值一旦有了,就不会被改变了。
c2 同
const int j = i + 10;
long address = ( long )&j;
char buf[ j + 10 ];
int main()
{
const char c = cin.get();
const char c2= c+ 'a';
}
i 是一个编译时间的常量, 但是J是一个计算出来的常量。因为i是一个常量, j作为一个从常量计算出来的值, 所以也是一个编译常量。
在long使用的时候,会强迫j分配一个空间,但是j作为一个编译时间的常量,他的值是不会被改变的。
const char c = cin.get(); c会被强制分配一个storage,存储输入的值,但是这个值一旦有了,就不会被改变了。
c2 同
浙公网安备 33010602011771号