关于const的一点个人总结 C++
来源:互联网 发布:javascript解析json 编辑:程序博客网 时间:2024/05/29 16:37
我想简单总结一个const 的用法,方便我自己复习
只能在const类型的对象上执行不改变其内容的操作,const int和普通int一样都能参与算术运算,也能转化为一个布尔值。
int i=42;const int ci=i;int j=ci;
在拷贝一个对象的值时并不会改变他。
const的引用
const int ci=9;const int &r1=ci;r1=42; //错误 r1是对常量的引用int &r2=ci; //错误,试图让非常量引用指向敞亮对象,那么通过操作r2就可以改变ci的值了,显然不可以
引用的类型必须与其所引用对象类型一致,但是有两个例外
1)初始化常量引用时允许用任意表达式作为初始值,只要该表达式结果能转化成引用类型即可
int i=3;const int &r1=i; //常量引用的特例,不允许通过r1修改i的值int &r2=r1*2; //错误 r2是普通非常量引用
2)...
执行拷贝操作不会改变拷贝对象的值,拷入拷出的对象是否是常量都没有什么影响
底层const的限制不能忽视,非常量可以转换成常量。
const int ci=8;int i=0;int &r=ci; //错误const int &r2=i;
指针和const
要想存放常量对象的地址,只能使用指向常量的指针
const double pi=3.1;double *ptr=π //错误,ptr是普通指针const double *p=π*p=0.2; //错误
指针的类型必须与其所引用对象类型一致,但是有两个例外
1)允许令一个指向常量的指针指向一个非常量对象
double dval=9.2;const double *p=&dval;
const指针必须初始化。
提一点,指针本身是不是常量以及指针所指的是不是一个常量是两个相互独立的问题。
2)...
类比上面引用的情况
int i=7;const int ci=2;const int *p2=&ci;const int* const p3=p2;int *p=p3; //错误p2=p3;p2=&i;
还有一个关于顶层const的,在执行对象拷贝操作时,常量是顶层const还是底层const区别明显,顶层const不受什么影响.
int i=0;const int ci=8;i=ci;const int *p2=&ci;const int *const p3=p2;p2=p3;
这是我所知道的,
0 0
- 关于const的一点个人总结 C++
- 关于memchache的一点个人总结
- 关于微信小程序的一点个人总结
- const的一点总结
- 个人的一点总结
- C/C++中关于CONST关键字的一点说明
- 关于C++ const 的全面总结(个人感觉一般般)
- [C++] 关于C++ const 的全面总结
- 关于C++const的全面总结
- C++_关于const 的全面总结
- C中关于const的总结
- 学习web开发的一点个人总结(关于权限)
- 12-2-24关于动态规划的一点个人总结
- 关于荷兰HVR 数据复制软件的一点个人总结
- 关于荷兰HVR 数据复制软件的一点个人总结
- 个人毕业设计的一点总结
- 关于const的总结
- 关于const的总结
- Linux 指定运行时动态库路径
- 在kernel space调用系统调用的例子
- DB2常用函数一:(字符串)详解
- Android Modbus的实现--Modbus4Android
- Android6.0 移除电池设置
- 关于const的一点个人总结 C++
- IOC容器类对象
- 深入了解startActivity启动流程
- app端UI的制图规范
- 计算几何凸包——NYOJ78圈水池
- 2、替换空格
- 文件的读写 几种常见的方法
- 用Kibana和logstash快速搭建实时日志查询、收集与分析系统
- Zookeeper系列(八)Zookeeper客户端(JAVA)API之节点检查和权限控制