//1、C语言中
//a、const修饰的变量不能够再作为左值!!!初始化完成后,值不能被修改!!!
//b、const 在C语言中是一个常变量,不能被修改,但是它是一个变量,不是常量
int test()
{
const int a = 10;
int arr[a] = {};//错误,C语言中是常变量,本质还是个变量,此时数组初始化必须是变量
}
//2、C++中,所有出现const常量名字的地方,在编译阶段都被常量的初始化替换了!!!它是常量
int test2()
{
const int a = 10;
int arr[a] = {};//OK
}
//3、C++中,常量被一个变量赋值没退化成常变量
int test2()
{
int b = 20;
const int a = b; // 已经改了!!!
int array[a] = {};//错误,已经退化成常变量了 , 叫常变量 因为初始值不是立即数,是一个变量
}
const在C和C++里的区别
C/C++中const关键字的差异与常量行为
于 2023-10-16 23:35:34 首次发布
文章比较了C语言和C++中const关键字的使用,指出C语言中的const变量本质上仍是可变的,但在C++中,const常量在编译时就被初始化替换,且不会因赋值改变。

被折叠的 条评论
为什么被折叠?



