详解const在C++中的用法,const和一级指针、二级指针结合

C++与C语言中const的用法

const怎么理解?

const修饰的变量,不能作为左值进行赋值,初始化后值不能被修改!!!(内存可以修改)

const int b=10;
b=20;===>编译错误,b不能作为左值

int *p=(int*)(&b);//用一个指针指向b的内存
*p=30;//那么此时b内存的值就是30了

C++与C语言中const的区别

主要是编译方式的区别:在C语言中,const被当作变量编译生成指令,所以const修饰的变量称为常变量。在C++中,编译时,所有出现const常量名的地方都被替换成const常量的初始值,此时const修饰的量是常量(特别地当初始值不是立即数而是变量时,const修饰的量就退化成常变量了,跟C语言一样。

三种写法图示

在这里插入图片描述

const和一级指针的结合

分析方法

1.C++语言规范:const修饰的是离它最近的类型。

2.我们关注的是什么,我们关注的不是const修饰的类型,而是const修饰的表达式。

一图明白const和一级指针的结合

请添加图片描述

两个示例

示例1:int * 与int * const类型相同,因为const右边没有指针*,const是不参与类型的。
请添加图片描述
示例2:int * <==const int * 这种转换是错误的
请添加图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

西里小诸葛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值