《C++ Primer》摘记

简洁可以成为一种美德- p132

《C++ Primer》摘记 (C++ 11)


第四章 表达式

4.5 递增和递减运算符

建议:除非必须,否则不用递增递减运算符的后置版本,优先考虑使用 --i,++i
原因:后置版本需要将原始值存储下来以便于返回这个未修改的值

4.11 类型转换
4.11.1 算术转换

整型提升 (integeral promotion):小整数类型转换为大整数类型,对于 bool, char, signed char, unsigned char, shortunsigned short 等类型来说,只要它们所有可能的值都在 int 类型范围内,它们就会提升为 int 类型。对于较大的 char 类型 (wchar_t, char16_t, char32_t) 提升为 int, unsigned int, long, unsigned long, long longunsigned long long 中能容纳原类型所有可能值的最小一种类型。

如果某个运算符的运算对象类型不一致,这些运算对象将转换成同一种类型。

  • 首先执行整型提升
  • 若符号一致,则进一步提升至同一类型为止。
  • 若符号不一致,且如果无符号类型不小于带符号类型,则带符号的运算对象转换成无符号类型。比如 unsigned intintint 要转换为 unsigned int
    但如果带符号类型大于无符号类型,此时转换结果依赖于机器。如果无符号类型的所有值都在该带符号类型范围内,则无符号类型转化为带符号类型;如果不能,则带符号类型转化为无符号类型。比如 longunsigned int,若 longint大小一致,则 long 要转换为 unsigned int;若 longint 所占空间大,则 unsigned int 要转换为 long

第六章 函数

6.2 参数传递
6.2.2 传引用参数

建议:使用引用避免拷贝
原因:拷贝大的类类型对象或者容器对象比较低效,甚至有的类类型(包括 IO 类型在内)根本不支持拷贝操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值