您的位置:首页 > 编程语言 > C语言/C++

c++ 常量引用 常量指针

2018-02-28 20:41 295 查看
常量限定符 const:常量对象一旦创建不能修改,因此必须初始化。
引用:引用即别名,不占内存空间,必须初始化。例如,
int n = 2;
int &y = n;
cout << &n << endl;
cout << &y << endl;
输出为
006FF928
006FF928指针:用于指向某个对象,存放该对象的地址。int m = 2;
int *p = &m;
cout << "m:" << m << endl<<"*p:<<*p<<endl;
cout << "&m:" << &m << endl<<"p:" << p << endl;
输出为
m:2
*p:2
&m:009CFCE4
p:009CFCE4常量引用:对const的引用。 int a = 1;
int &b = a; //正确,普通引用
const int &y = a; //正确,常量引用,不能通过y改变a的值,&y和&a为同一块内存
//y = 2; //错误
const int &x = 4; //正确,常量引用允许任意表达式做初始值
//int &w = 5; //错误,非常量引用必须绑定对象常量指针:
顶层const:指针本身是个常量,即不能更改指针所指对象。 int j = 3;
int *const p1 = &j; //正确,顶层const,指针本身是个常量,不能再更改所指对象
int t = 3;
//p1 = &t; //错误,p1为常量指针,不能再指向其他对象
底层const:指针所指对象是个常量,这时,仅指针所指的对象不能改变,但指针可以改指向其他对象。 const int i = 2;
const int *p = &i; //正确,底层const,指向常量的指针
const int k = 4;
p = &k; //正确,可以更改p指向的对象
const int *const p2 = &i;	//正确,右侧const为顶层const,不能改变p2的指向,左侧const为底层const,表示所指对象为常量
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: