C++ Primer 第4章 知识点回顾
来源:互联网 发布:oauth2.0 java 服务端 编辑:程序博客网 时间:2024/06/05 09:35
4.2 算术运算符
(-m)/n和m/(-n)都等于-(m/n),m%(-n)等于m%n,(-m)%n等于-(m%n)
4.3 逻辑和关系运算符
- 进行比较运算时除非比较的对象是布尔类型,否则不要使用布尔字面值true和false作为运算对象
- &&、||、条件运算符、逗号运算符规定了求值顺序,对于没有规定运算对象求职顺序的运算符,可能产生未定义行为
4.8 位运算符
- & 、|、~
- 重载运算符的优先级和结合律和内置版本一致
4.9 sizeof运算符
- sizeof运算符返回一条表达式或者一个类型名字所占的字节数,sizeof并不实际计算其运算对象的值
- 对指针执行sizeof得到指针本身所占空间的大小,对解引用指针执行sizeoff得到指针指向的对象所占空间的大小,指针不需有效(因为sizeof不会实际求运算对象的值)
- 对数组执行sizeof运算得到整个数组所占空间的大小,注意,sizeof不会把数组转换成指针来处理
- 对string和vector对象执行sizeof运算只返回该类型固定部分的大小,不会计算对象中元素占用了多少空间
4.11 类型转换
- 很多时候,如果表达式中既有整数类型也有浮点数类型的运算对象,整型会转换成浮点型。算术转换的规则定义了一套类型转换的层次,其中运算符的运算对象将转换成最宽的类型。如果一个运算对象是long double ,那么不论另一个运算对象的类型是什么都会转换long double。
- 整型提升:bool char signed char undigned char short unsigned short只要他们所有可能的值都能存在int里,他们就会提升成int类型,否则,提升成unsigned int类型
- 算术类型和指针类型可以向布尔类型自动转换
- const_cast 只能改变运算对象的底层const,static_cast可以处理不包含底层const的任何具有明确定义的类型转换
小结
对于含有超过一个运算符的表达式们要向理解其含义关键要理解优先级、结合律与求值顺序
0 0
- C++ Primer 第4章 知识点回顾
- C++ Primer 第2章 知识点回顾
- C++ Primer 第3章 知识点回顾
- C++ Primer 第5章 知识点回顾
- C++ Primer 第6章 知识点回顾
- C++ Primer 第7章 知识点回顾
- C++ Primer 第8章 知识点回顾
- C++ Primer 第9章 知识点回顾
- C++ Primer 第10章 知识点回顾
- C++ Primer 第11章 知识点回顾
- C++ Primer 第12章 知识点回顾
- C++ Primer 第13章 知识点回顾
- C++ Primer 第14章 知识点回顾
- C++ Primer 第15章 知识点回顾
- C++ Primer 第16章 知识点回顾
- C++ Primer 第17章 知识点回顾
- C++ Primer 第18章 知识点回顾
- C++ Primer 第19章 知识点回顾
- vs2005 debug模式下查看不了对象变量的值的解决办法
- Python中copy和deepcopy中的区别
- 如何解决Suggestion: use tools:overrideLibrary="" to force usage
- 打开了 多个activity,一次如何退出
- 微信支付不回调支付成功的方法,这是为什么
- C++ Primer 第4章 知识点回顾
- HDU 5787 K-wolf Number
- HDU-1251 统计难题
- spring mvc注解代码实例教程
- easyui datagrid 分页详解
- POJ 2546 Circular Area(计算几何 两圆相交面积)
- python Import 学习笔记
- SGU 180 Inversions (树状数组+离散化)
- [leetcode] 144. Binary Tree Preorder Traversal