C++ const 关键字

const关键字的一个小优化

https://www.jianshu.com/p/4ab2c4cfae81

关于const修饰的指针和引用

下面的部分我将以普通变量,和const修饰的变量为右值,分别分析普通指针,普通引用,常指针,常引用,指针常量,const int * const 作为左值时的情况,俩判断const关键字的用法:

int main()
{
	//我们看看另个东西第一类,C语言风格的字符串
	const int cv = 1;//const修饰的变量
	int v = 1;  //普通变量


	const int *p1 = &v;  

	const int* p2 = &cv;

	int *p3 = &v;


	int *p4 = &cv;

	int & p5 = v;

	int & p6 = cv;

	const int &p7 = v;

	const int &p8 = cv;

	const int * const p9 = &v;

	const int * const p10 = &cv;




	return 0;
}

VS自带的检查功能会将不合法的赋值语句给标记出来,如下图所示:
在这里插入图片描述

通过这个实验,我们知道一下几点:
1 所有的语句对于普通变量都适用,但是与此同时,不会修改变量的属性,即使我对v进行修改。
2 普通指针或者引用不能够指向常变量
3 常量指针指向的值不可以通过常量本身改变,为什么我不说常量指针指向的值不可以改变呢?看下面这个例子:


	int a = 1;
	const int *p = &a;
	cout << *p<< endl;
	a = 2;
	cout << *p << endl;

	system("pause");

常指针指向变量地址是合法的,可以说常指针指向的就是a的值,但是a的值可以有本身的变量名称改变,不可以通过P改变
4 指针常量(注意我说的是指针常量本身)定义时初始化,就初始化之后就不能改变(指向不能改变)。

总结const 关键字的作用

1 const 修饰变量作为常量,为开发任务中需要在编译过程中需要保持不变的概念作为技术支撑。
同时,const修饰的指针也是作为这一部分的内容。
2 const & 常引用作为函数参数。这里有两个点,一个是为什么要用引用,如果形参数值传递的话,实参会拷贝一份,函数体内的实际操作都是针对复制品在做操作。如果传入的是引用,那么实参就是变量本身,可以在函数体内对传入的形参进行操作。2,为什么要用const修饰,正式因为有1的性质,在一些不允许对内容进行修改,同时又需要用到变量本身,那我们就可以使用const关键字来防止传入的参数被修改。
常引用的一个最广泛的应用例子为:拷贝函数中的参数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值