const关键字:可改不可改?

2023-05-27 0 571

自变量函数是指在C++校对末期就能的到值的函数,比如:const int a = 3,尽管听出来很单纯,但事实上很难犯错误。责任编辑概要归纳它的相同.

有关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类别的操作符。操作符的值能修正。

constURL:头等不头等? | 《Linux就该这么学》 (linuxprobe.com)

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务