《C++ Primer(第5版)》学习笔记:第4章 表达式
2014-05-11 01:17
274 查看
函数调用:也是一种特殊的运算符,它对运算对象的数量没有要求。
重载运算符:使用重载运算符时,其包括运算对象的类型和返回值的类型,都是由该运算符定义的;但是运算对象的个数、运算符的优先级和结合律都是无法改变的。
关于“左值”和“右值”的归纳:当一个对象被用作右值的时候,用的是对象的值(内容);当对象被用作左值的时候,用的是对象的身份(在内存中的位置)。ps:左值、右值的具体概念还需要进一步理解。
求值顺序:result = f1() * f2(); 编译器无法知道f1与f2哪个函数先调用。求值顺序一般无法确定,四个运算符例外:&&、||、?:、,。
算术运算符:C++11新标准规定商一律向0取整(即直接切除小数部分)。
复合赋值运算符:sum+=num; 与sum=sum+num;的区别:前者求值一次而后者求值两次,但在很多地方除了对程序性能有些许影响外几乎可以忽略不计。
递增和递减运算符:除非必须,否则不用递增递减运算符的后置版本。这是因为后置版本需要将原始值存储下来以便于返回这个未修改的内容。
位运算符:关于符号位如何处理没有明确的规定,所以强烈建议仅将位运算符用于处理无符号类型。
sizeof运算符:在sizeof的运算对象中解引用一个无效指针仍然是一种安全的行为,因为指针实际上并没有被真正使用。C++11新标准允许我们使用作用域运算符来获取类成员的大小。对string或者vector对象执行sizeof运算只返回该类型固定部分的大小,不会计算对象中的元素占用了多少空间。
隐式类型转换:当数组被用作decltype关键字的参数,或者作为取地址符(&)、sizeof及typeid等运算符的运算对象时,数组不会隐式地转换为指针。
命名的强制类型转换:static_cast、dynamic_cast、const_cast、reinterpret_cast。
重载运算符:使用重载运算符时,其包括运算对象的类型和返回值的类型,都是由该运算符定义的;但是运算对象的个数、运算符的优先级和结合律都是无法改变的。
关于“左值”和“右值”的归纳:当一个对象被用作右值的时候,用的是对象的值(内容);当对象被用作左值的时候,用的是对象的身份(在内存中的位置)。ps:左值、右值的具体概念还需要进一步理解。
求值顺序:result = f1() * f2(); 编译器无法知道f1与f2哪个函数先调用。求值顺序一般无法确定,四个运算符例外:&&、||、?:、,。
算术运算符:C++11新标准规定商一律向0取整(即直接切除小数部分)。
复合赋值运算符:sum+=num; 与sum=sum+num;的区别:前者求值一次而后者求值两次,但在很多地方除了对程序性能有些许影响外几乎可以忽略不计。
递增和递减运算符:除非必须,否则不用递增递减运算符的后置版本。这是因为后置版本需要将原始值存储下来以便于返回这个未修改的内容。
位运算符:关于符号位如何处理没有明确的规定,所以强烈建议仅将位运算符用于处理无符号类型。
sizeof运算符:在sizeof的运算对象中解引用一个无效指针仍然是一种安全的行为,因为指针实际上并没有被真正使用。C++11新标准允许我们使用作用域运算符来获取类成员的大小。对string或者vector对象执行sizeof运算只返回该类型固定部分的大小,不会计算对象中的元素占用了多少空间。
隐式类型转换:当数组被用作decltype关键字的参数,或者作为取地址符(&)、sizeof及typeid等运算符的运算对象时,数组不会隐式地转换为指针。
命名的强制类型转换:static_cast、dynamic_cast、const_cast、reinterpret_cast。
相关文章推荐
- C++ Primer学习总结 第4章 表达式
- C++ Primer 学习笔记——第5章 表达式
- 《C++ Primer(第5版)》学习笔记:第3章 字符串、向量和数组
- C++ primer第二次阅读学习笔记(第4章)
- C++ Primer 学习笔记(四)——表达式
- C++ Primer 学习笔记与思考_9 表达式中过的那些容易忽略的地方
- 《C++ Primer(第5版)》学习笔记:第1章 开始
- C++ Primer 学习笔记_16_表达式 --算术、关系、逻辑、位、赋值、自增/自减操作符
- 【C++ primer 学习笔记】chapter5 表达式
- C++ Primer复习和学习笔记 第五章 表达式
- [C++ primer 学习笔记][05]表达式和语句
- C++ Primer 学习笔记_17_表达式(续1) --箭头、条件、sizeof、逗号表达式与复合表达式求值
- C++ Primer(第4版)-第5部分:高级主题——学习笔记
- C++ Primer 学习笔记_18_表达式(续2) --new/delete表达式与类型转换
- ruby编程语言-学习笔记2(第4章 表达式和操作符)
- ruby编程语言-学习笔记4(第4章 表达式和操作符)
- c++ primer(第五版)学习笔记及习题答案代码版(第四章)表达式
- C++ Primer 学习笔记9 表达式 (求余、自增和自减操作符、箭头操作符、条件表达式、sizeof操作符、逗号操作符)
- C++ Primer(第4版)-学习笔记-第5部分:高级主题
- C++ Primer学习笔记之第四章--表达式