const
来源:互联网 发布:tpshop开源商城源码 编辑:程序博客网 时间:2024/05/21 07:09
const 限定符在c++中是只读,即不能被改变。
1.const 与引用
对常量的引用不能被用作绑定的对象,例如
const int a=1;
int c=2;const int &b=a; //把引用绑定在const常量对象
const int &d=c; //把引用绑定在普通对象
b=3; //错误,试图修改绑定的对象
d=3; //错误,同上在初始const引用时允许用任意表达式作为初始值,只要该表达式的结果能转换成引用类型。但不能通过const引用来改变其所引用的值。例如
int i=2;const int &j=i; //正确,j是常量,但j不能改变i的值int &k=i; //错误,k不是常量
2.const与指针
把*放在const之前即说明常量指针。由于指针是对象,所以其必须初始化,一旦初始完成,其指向的值就不能改变。指针常量则是其所指向的地址为常量,其地址里的数据可以改变。
3.顶层const与底层const
顶层const表示指针本身就是个常量,强调是自身。底层const表示指针所指向的对象是常量,强调是他人。所以用于声明引用的const都是底层const。一般地,常量指针是顶层const,指针常量是底层const。
比较明显的区别是对象的拷贝。若是顶层const则执行对象的拷贝不受影响。若是底层const,拷入与拷出的对象必须具有相同的底层const,或者两个数据类型必须能转换。例如
int b=0;const int &a=b;int *p=a; //错误,p并没有底层const含义
1 0
- const
- const
- const
- CONST
- const
- const
- const
- const
- const
- const
- Const
- const
- const
- const
- CONST
- const
- const
- const
- java 基本数据类型及自动类型提升
- 用Latex写伪代码
- web兼容性及解决方案(收集)
- 1043. 输出PATest(20)
- 动态规划理论思想
- const
- lightoj 1042 - Secret Origins 【数学】
- I00006 打印等腰三角形字符图案(底边在下)
- Linux 安装ftp
- 1044. 火星数字(20)
- 链表实验
- LightOJ - 1433 Minimum Arc Distance (数学几何)求圆上两点间的弧长
- PHP程序员进阶学习书籍参考指南
- NBUT1461 数字整除(大数处理,减法、除法)