const限定符

const 的引用

	int a = 5;
	const int b = 10;
		//1.左值:常量引用,右值:常量;
	const int& c = b;
	
		//2.左值:常量引用,右值:变量;
	const int& c = a;
	
		//3.左值:非常量引用,右值:常量;
	int& d = b;//将 "int &" 类型的引用绑定到 "const int" 类型的初始值设定项时,限定符被丢弃
	
		//4.左值:非常量引用, 右值:变量;
	int& d = a;

当右值为常量时,左值必须是对const的引用;
当左值为常量时,右值不一定是对const的引用;

const和指针

1.指向常量的指针

可以指向多个变量(常量),但都不会改变该变量(常量)的值;

int a = 5;
const int b = 10;
const int* ptr = &a;//指向的第一个变量
*ptr = 15;//错误 表达式必须是可修改的左值

ptr = &b;//正确 指向的第二个常量(可以指向多个变量(常量))
*ptr = 20;//错误 表达式必须是可修改的左值,但都不会改变该变量(常量)的值;

const引用和指向常量的指针又是自以为指了个常量(其实有可能是个变量),就自发的不去更改所指对象的值。

2.常量指针(const 指针)

只能指向一个变量,但可以修改其值

	int a=5,aa=5;
	const int b = 10;
	int *const c = &b; //不能是常量。错误:"const int *" 类型的值不能用于初始化 "int *const" 类型的实体	
	int *const c = &a;//变量
	*c = 15;//可以修改其值
	
	c = &aa; //只能指向一个。错误:表达式必须是可修改的左值

默认状态下,const对象仅在文件内有效

默认状态下,当在不同文件中定义相同变量名的const变量时,相当于在不同文件中定义了不同的独立的变量。
就是说那怕你在不同文件中定义相同变量名,那也是不同的const变量
如果你想做到在一个源文件中只声明一次const变量,在各个文件都有效的话,就用extern关键字
记得引用头文件( .h)

extern const<数据类型> 变量名; 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值