C语言const 和 *的爱恨情仇

相信所有在学C的人都对const 和 *这对小情侣非常熟悉,实在是太烦了。他们中间还时不时得加个第三者什么int,char啥的。看了很多资料再加上我自身的总结提炼理解以后,我终于把他们理清了。

首先const这个关键字是用来修饰常量的,我们就简称它为常量。定义指针的时候都会用到*,int *p。因此我们简称*为指针。

起好简称后我们来看看这对小夫妻,记得抛开一切第三者,我们眼里只有这对小夫妻。const *(记得千万别管第三者在哪,我们眼里只有他俩),常量在前指针在后,我们叫他常量指针。这是个指针,一个指向常量的指针。因此它指的那个东西,就是以它的值为地址的那个东西(指针不懂的可以留言,看看我的理解足不足够为大家解答)。那个东西是个常量,它不能通过我们的常量指针来修改(当然别的指向他的指针还是可以改他的)。既然我们的常量指针是个指针,那他肯定想指谁就指谁,因此他指向的内存是可以改的。

上图!!!cLion的报错应该够清晰了吧!!!

接下来我们来看他们的另一种组合 *const,同理记得抛开第三者。很显然指针在前常量在后这是个指针常量。这是个常量,这个指针是个常量,因此他指向的内存是不能改的,只要指向的地方(地址)不动,那一亩三分地住的到底是华妃还是熹贵妃压根就没人管。也就是说,常量指针指向的地方不能改,但那块地方的值(华妃还是熹贵妃)可以改。

粗浅见解,如有不对的地方,欢迎各位大佬指正。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值