自变量函数是指在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,右边第二层consttypedef的误区
很显然,当他们使用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)