const 引用
2015-11-11 19:17
323 查看
int r=3; const int &ri=r; r=5; cout<<&r<<&ri<<endl; cout<<ri<<endl;
经过输出发现r与ri的地址相同,当改变r的值时常亮ri的值也变化;
<pre name="code" class="cpp">double r=3.14; const int &ri=r; r=4.34; cout<<&r<<&ri<<endl; cout<<ri<<endl;
r被定义为double型,ri是const int型,能够编译正确,ri是3;
根据输出发现r与ri的地址不同,当r改变时ri不在变化。
double r=3.14; int &ri=r;//错误,double不能 r=4.34; cout<<&r<<&ri<<endl; cout<<ri<<endl;
在操作数都是指向有限定符的相容类型指针,左边指针所指向的类型必须具有右边指针所指向的全部限定符
例如char *cp 和const char *ccp则ccp=cp正确,而反过来就不正确了,ccp包括const限定符的char指针,cp没有限定符的char指针
const float *类型并不是一个有限定符的类型--指向一个具有const限定符的float类型的指针,也就是说const限定符是修饰指针所指向的类型,而不是指针本身
总结,const引用 可以绑定到不同但相关的类型的对象,并且可以根据引用对象来改变const变量 的值,非const引用只能绑定到与引用同类型的对象
const在*左边,指针指向的变量值不能通过指针改变;
const在*右边,指针的指向不能改变;
左定值,右定向
相关文章推荐
- 如何写好 C main 函数
- Lua和C语言的交互详解
- 关于C语言中参数的传值问题
- 简要对比C语言中三个用于退出进程的函数
- 深入C++中API的问题详解
- 基于C语言string函数的详解
- C语言中fchdir()函数和rewinddir()函数的使用详解
- C语言内存对齐实例详解
- 使用C语言判断英文字符大小写的方法
- c语言实现的带通配符匹配算法
- C语言实现顺序表基本操作汇总
- C语言中计算正弦的相关函数总结
- 使用C语言详解霍夫曼树数据结构
- 探讨C语言的那些小秘密之断言
- C语言实现BMP转换JPG的方法
- 深入探讨C语言中局部变量与全局变量在内存中的存放位置
- C语言查找数组里数字重复次数的方法
- C语言泛型编程实例教程
- C语言中使用lex统计文本文件字符数
- 在C语言中转换时间的基本方法介绍