顶层const、底层const

速记:
const*:常量指针
*const:指针常量
顶层const:*在const的左边,如int* const
底层const:*在const的右边,如int const*

底层const(常量指针)

定义了一个指针,不能通过常量指针改变这个对象的值
不能通过任何形式的常量指针修改这个对象,但是这个常量指针可以更改

形式

数据类型 const* 变量名 = 地址;
const 数据类型* 变量名 = 地址;

示例

int temp = 10;
const int* a = &temp;

错误1:通过常量指针修改指向对象的值

*a = 100;

正确1:更换常量指针的指向

int *temp2 = 100;
a = &temp2;

正确2:通过变量名更改常量指针指向的对象

temp = 1000

顶层const(指针常量)

定义了一个指针,这个指针的值只能在定义时初始化
强调的是指针的不可变

形式

数据类型* const 指针变量 = 变量名;

示例

int temp = 10;
int temp1 = 12;
int* const p = &temp;

错误1:修改常量指针的所指对象地址

p = &temp2; // 错误,不可更改指针常量的地址值

正确1:通过变量名更改变量值

temp = 10; //正确

正确2:通过常量指针更改变量值

*p = 9; // 正确
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值