Cpp中const 修饰指针(学习笔记)

const 修饰指针的三种情况

第一种:常量指针

如有以下定义:

	int a=20;
	int b=10;
const int *p=&a;//常量指针

指针指向的值不可以改的,但是指针的指向可以改。

这样理解:打印 *p时不就是打印a变量的值20嘛?


但是const在你前面把你给锁死了,就如《三体》中的质子把基础物理锁死了一样,人类再做任何挣扎都是无法发生改变的。
 

p=&b;//指针的指向可以改
*p=20;//如此改变就会出现报错 

第二种:指针常量

	int * const p1=&b;//指针指向的值可以改的,但是指针的指向不可以改 

int* const p1 = 一个地址;因为指针本身的值是不能被修改的所以它必须被初始化

	 *p1=300;//修改指向的值
	 p1=&a;// 会出现报错,指针的指向是不可以改的 

记忆:* 在前面,顾名思义就是指针常量。
p1就是地址既然被修饰为常量,那肯定不可以改。
 const p1 可以理解为只读变量,可读不可改 。
而指针*没有被修饰限定所以是可以改变的。

第三种:既修饰指针又修饰常量

    const int* const p2=&a;	//既修饰指针又修饰常量,二者都不可以改 
    p2=&b;//报错
    *p2=111;//报错

既修饰指针又修饰常量,二者都不可以改。

总结:看const紧贴指针还是常量,紧贴指针就是常量指针,紧贴常量就是指针常量

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值