const在C和C++里的区别

文章比较了C语言和C++中const关键字的使用,指出C语言中的const变量本质上仍是可变的,但在C++中,const常量在编译时就被初始化替换,且不会因赋值改变。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


//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] = {};//错误,已经退化成常变量了 , 叫常变量   因为初始值不是立即数,是一个变量
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值