我是靠谱客的博主 高挑翅膀,这篇文章主要介绍指针、引用、const常量三者之间的关系,现在分享给大家,希望可以做个参考。

一、说明
指针和引用均实现对其他对象的间接访问。
1、指针:存放另一个对象的地址。
1)指针本身就是一个对象,允许对指针赋值和拷贝,而且指针可以先后指向几个不同的对象。
2)指针可以在定义时不赋初值。

2、引用:为一个已经存在的对象所起的另外一个名字。
1)定义了一个引用后,必须对其初始化(引用的初始值必须是一个对象)。对其进行的所有操作都是在与之绑定的对象上进行。
2)为引用赋值,实际上是把值赋给了与引用绑定的对象。
3)引用不是对象,所以不能定义引用的引用。

二、指针、引用、const常量之间的关系
1、对指针的引用

复制代码
1
2
3
4
5
int i = 42; int *p; int *&r = p; //r:对指针p的引用 r = &i; //r引用了一个指针,为r赋值&i就是令p指向i *r = 0; //解引用r得到i,即p指向的对象,将i值改为0

2、对const的引用(常量引用)

复制代码
1
2
3
4
5
int i = 42; int &r1 = i;//引用r1绑定对象i const int &r2 = i;//r2绑定对象i,但不能通过r2修改i的值 r1 = 0;//i值修改为0 //r2 = 0;//错误

3、const和指针
1)常量指针:指针本身是常量,其值(地址)不可改变。格式:*const p

复制代码
1
2
3
4
5
6
7
int a = 10; int b = 20; int *const p = &a;//p一直指向a *p = b; //正确:a的值改变为20 p = &b; //错误:p的值(地址)不可改变 const double pi = 3.1415; const double *const pip = π //pip是指向常量对象的常量指针

2)指向常量的指针:存放某个常量对象的地址,不能改变所指对象的值。

复制代码
1
2
3
4
5
int a = 10; int b = 20; const int *p = &a; p = &b; //正确:p的值可改变 *p = b; //错误:不能改变所指对象的值

最后

以上就是高挑翅膀最近收集整理的关于指针、引用、const常量三者之间的关系的全部内容,更多相关指针、引用、const常量三者之间内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(72)

评论列表共有 0 条评论

立即
投稿
返回
顶部