良许Linux教程网 干货合集 可不可以更改const关键字

可不可以更改const关键字

常量表达式是指在编译器编译时期就可以的到值的表达式,例如:const int a = 3,虽然听起来很简单,但实际上很容易犯错。本文简要总结它们的不同.

u=898647302,865295076&fm=26&gp=0

关于const:顶层const和底层const 一般,我们声明const用来存储不变的恒定量:

const int MAXN = int_max;

用指针指向:

const int *pMAXN = &MAXN;

这条语句开始的const int实际上是为了MAXN的类型做出的匹配,我们得到的pMAXN实际上是可修改的。

那么如何让 pMAXN 不可修改呢?

c++采用’双const‘的方法:

const int * const pMAXN = &MAXN;

这样,pMAXN成为了不可修改值的,指向MAXN的指针。

其中,可以修改值的const就被称为底层const,而不可修改值的称为顶层const。

const int *pMAXN = &MAXN;   //底层const
const int * const pMAXN = &MAXN; //左边底层const,右边顶层const

typedef的误区

很显然,当我们使用typedef的时候,const又产生了问题:

typedef char *pstring;
const pstring *ps;

在有上面的语句的基础上,这条语句是什么意思?

const pstring cstr = 0;

一般情况下,我们看到pstring就会直接去找它的定义,这种习惯是错误的!我们应该按照次序,先读这条语句。

首先,pstring加上了const修饰符,这代表定义的语句是const状态,是常量表达式。其次,pstring定义的是指向char类型的指针,所以,综上所述,这条语句声明了一个指向char的常量指针即,指针的值不可修改。

那这一条语句呢:

const char *cstr = 0;

它声明了一个指向const char类型的指针。指针的值可以修改。

以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !

137e00002230ad9f26e78-265x300
本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部