C++Primer读书笔记(第三章)(03)
3.5 const类型指针的使用方法:
const double val = 1.2;
const double *p = &val;//要访问const double类型变量的地址,必须用const类型指针。但const类型指针可以指向不为const类型的变量;例:
double vall= 1.5;
p = &vall;//这是正确的。
int a = 10;
const int *pic = ?;//pic本身可以被修改,但它指向的对象内容不能被修改。
int *const pic = ?;// pic本身不能被修改,但内容可以被修改。
const int *const pic = ?;//pic和它指向的对象都不能被修改。
注意:所有不能被修改的都必须赋初值。
3.6引用
引用就是给一个对象起的别名,所有对引用的操作,都等同于对这个对象的操作。
int ival = 10;
int &refval = ival; //是一个指向ival的引用;
int &refval2; //错误,引用必须被初始化为指向一个对象;
当给引用赋常量值时,必须声明为const类型,例:const int &val = 10;如果没有const则是错误的。
3.7布尔值
布尔值只有两个结果:true 、false。
当表达式需要一个算术值时,布尔对象和布尔文字都被隐式的提升为int类型。(1和0)
当需要时,int也可以转换为bool类型,如:
int val = 10;
bool bv = true;
if(bv==val){;} //此时val隐式转换为bool类型。