【c++】——const详解

本文详细探讨了C++中const的使用,包括在C和C++中的差异,const与static修饰成员的规则,以及const与指针的组合。总结了const修饰的变量不能作为左值修改,const成员变量在常对象中不能被普通方法修改等关键概念。
摘要由CSDN通过智能技术生成


首先,我们要来明确一下,什么是const,在我们通常的观念里面,我们会认为下面这个代码是错误的。

	const int b = 20;
	b = 30;

因为const修饰的变量不能作为左值。初始化完成后值不能被修改。

1、在.c中const 的用法

在我之前的一篇博文中,有对其大概的讲解,c语言中const的用法
1.1const修饰的量,可以不用初始化
例如以下的程序是错误的:

const int a;
a = 20;

因为const的值虽然可以不用初始化,但是以后就不能作为左值来进行修改了。
所以一般情况下还是对其进行初始化。

1.2const修饰的量不叫常量,叫常变量
他和变量的唯一区别就是不能够把她作为左值修改。比如下列程序就是错误的。

const int a = 20;
int array[a] = {};

1.3练习
下列.c程序,打印结果是多少?

int main()
{
	const int a = 20;
	int* p = (int*)&a;
	*p = 30;
	printf("%d %d %d\n", a, *p, *(&a));
	return 0;
}

在这里插入图片描述
指针指向的是a的内存。结果是30,30,30.因为a这块内存已经被改了。a一直都是一个变量

2、在.cpp中const 的用法

2.1const修饰的量叫做常量,必须初始化
所以以下代码则是正确的:

const int a = 20;
int array[a] = {};

2.2const修饰的量叫常量
还是上述.c里面练习的代码。打印结果则为20 30 20
这是因为const的编译方式不同

  • c中,const就是当做一个变量
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值