C++Primer_ch4

ch4 表达式

4.1 基础
4.2 算术运算符
4.3 逻辑和关系运算符
4.4 赋值运算符
4.5 递增和递减运算符
4.6 成员访问运算符
4.7 条件运算符
4.8 位运算符
4.9 sizeof运算符
4.10 逗号运算符
4.11 类型转换
4.12 运算符优先级表


4.1 基础
  • C++ 定义了一元运算符、二元运算符和三元运算符。函数调用也是一种特殊的运算符,运算对象数量没有限制
  • 表达式求值中,运算对象类型转换
  • 重载运算符:当运算符作用于类类型的运算对象时,用户可自行定义含义。使用重载运算符时,其包括运算对象的类型和返回类型,都是由该运算符定义的;但是运算对象的个数、运算符优先级和结合律都是无法改变的
  • 优先级、结合律、括号无视普通的组合规律
  • 求值顺序,如f1()*f2()中哪个函数先被调用(未明确规定);对于未指定求值顺序的运算符,若表达式指向并修改了同一个对象,则行为未定义。如cout<<i<<i++; 编译顺序未知
  • 建议:1、拿不准优先级和结合律时,用括号。2、若表达式某处改变了某对象的值,则其他地方不要使用它。例外:*++iter

4.2 算术运算符
  • 一元运算符优先级>乘法和除法>加法和减法;优先级相同时按照从左向右的顺序进行组合
  • 在表达式求值之前,小整数类型的运算对象被提升成较大的整数类型,所有运算对象最终会转换成同一类型
  • 一元正号运算符、加法运算符和减法运算符都能作用于指针。当一元正号运算符作用于一个指针或者算术值时,返回运算对象值的一个(提升后的)副本。一元负号运算符对运算对象值取负后,返回其(提升后)副本,布尔值不应该参与运算bool b=true;bool b2=-b //b2是true ,对于是大多数运算符来说,布尔类型的运算对象将被提升为int类型,如上线转换为1,然后-1,再转换为
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值