C++中常量指针&指针常量&指向常量的指针常量

常量指针

定义:指向常量的指针,用const声明。

const int a = 5;
a = 10;?可不可以修改呢? 
答案是不可以的。
int b = 12;
const int a = b;
b = 20;
a = ?a会变化么?
答案a未发生变化。
const int a = 10;
const int *p = &a;
*p = 20;?可以么?
int b = 12;
p = &b;?可以么?
答案是第一个不可以,第二个可以。

 p (可以改变)    常量a(不可以改变)
0x18FF44   ------> 10

但是p的指向是可以改变的。
两种写法都可以:
int const *p = &a;
const int *p = &a;

指针常量

指针本身为常量。

常量p(不能变化)        变量a(可以改变)
0x18FF44 -------------> 10

int a = 10,b = 20;
int *const p = &a;
p = &b;?可以么?不可以!
*p = 11;?可以么?可以!

指向常量的指针常量

指针指向一个常量。
指针本身也是常量。

常量p(不能变化)      变量a(不可变化)
0x18FF44 -------------> 10

const int a = 1,b = 2;
const int *const p = &a;
*p = 10;?可以么?不可以!
p = &b;?可以么?不可以!

更多文章扫码关注

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值