C++学习笔记(3)
1.指针常量:指针变量的值只能在定义的时候初始化,定义后不能修改,即不能改变指针的指向,但不影响所指对象的访问特性。
类型 * const 指针 //const写在“指针”之前,表示约束指针变量的本身。
例:
int var1=100,var2=200;
int*const const_1 =& var1; //定义指针常量时初始化
const_P1 = & var2; //错误,不能修改指针常量
*const_1 = var2; //正确,可以修改指针常量所指对象的值
以上代码说明了指针常量和指向常量的指针(常量指针//前一篇博客)的区别:
常量指针:指针存储的地址可以修改,指针指向的对象变量不可通过指针间址访问对象方式进行修改
指针常量:指针的地址不可修改,指针指向的对象变量可修改
const int MAX=1000;
int *const const_P2=&MAX; //错误,因为const_P2是一个指针常量,仅仅约束指针值,并没有约束指针指向的对象变量,但是MAX是一个标识常量,不能用一个无约束间址访问的指针获取它的地址,常量地址只能赋给“指向常量的指针”。从此处也可以看出常量指针和指针常量的区别。
2.指向常量的常量指针:指针本身和指针指向的对象都被限制为只读,不能写。
const 类型 * const 指针
或
类型 const* const 指针
3.常引用:冠以const的引用,将约束对象用别名访问时为只读。
const 类型 &引用名=对象名