【C语言】关键字const详解 - 变量守护者

为什么说const是变量守护者?

首先我们先从字面认识一下const:

作用如其意,const用于修饰变量,将其变为某种意义上的“常量”。我们知道,常量是不可以被赋值的,所以被const修饰的常量就这样被保护起来了:

可它真能任何时候都保护变量吗?

 我们看下面一段代码:

num被篡改了!

所以我们可以比喻一下:假设我们把num放在一间屋子里,想要修改它就要进入这间屋子,而const的作用就是关上了屋子的门。我们不能直接通过门进入屋子,也就是不能直接通过给num赋值来修改它。而通过指针解引用找到它的地址,诶!我们没有从正门进入,直接从屋顶空降!所以const只是不能直接修改变量,但可以通过指针解引用找到它的地址来修改它。

 const只能保护常规变量吗?

众所周知,指针变量也是变量啊,所以我们可不可以用const修饰指针变量呢?

显然也是可以的。但是,同上面一样,我可以定义一个二级指针,通过对二级指针两次解引用来找到num并修改它!

上面只是把const放在了“*”的左边,那如果把它放在右边会怎样呢?

其实很好理解,p是指针变量,*p则是表示指针指向的内容。当const修饰p时,p就不能被改变;当const修饰*p时,*p指向的内容就不能被改变。

 在写代码的过程中,const大多是用在函数传参的时候,用来保护传过去的参数不被改变。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

LeePlace

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

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

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

打赏作者

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

抵扣说明:

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

余额充值