在VC6.0中C和C++编译器差异问题,const 定义的是常量还是变量呢

2025-03-10 07:02:31
推荐回答(2个)
回答1:

首先,C里面的const是个变量,C++里面是个常量
然后C++里面,全局const存放在常量区,局部const存放在栈区,不算真正的常量,你这里的就是一个局部const
由于C++里面,在运行之前,程序把a出现的地方都替换为了3,所以a已经变成了5,但是cout出来仍然是3
如果你把a定义到main函数外面,声明为全局const常量,程序运行会出错

回答2:

在C中由const修饰的是只读变量,而在C++中是const修饰的当作常量对待的。例如,在C中,const int N=8;int a[8];是非法的(定义数组时[]中不能用变量),而在C++中却可以通过编译。