C++ Primer 第四章 表达式

指针不能转换成浮点数
重载运算符时,不能改变运算对象的个数、运算符的优先级和结合律
对变量进行取地址得到的是一个右值
优先级并没有说明运算对象的求值顺序
运算对象修改了同一对象,会引发错误并产生未定义的行为

取余的运算对象必须是整型
除法运算中规定商一律向0取整
如果m%n结果不为0,则结果的符号与m相同
逻辑运算符和关系运算符的结果都是右值

初始值列表可以为空,此时编译器会创建一个初始化的临时量然后赋给左侧运算对象
不能把指针的值赋给int,就算指针的值是0也不行,因为指针类型无法转换为int
复合运算符只求值一次,普通运算符求值两次
后置版本返回右值
解引用的优先级低于点运算符
箭头运算符结果是左值,点运算符的结果类型取决于作用的对象
条件运算符的优先级很低,一般要加括号

位运算符首先将小整型进行提升为int
位运算符作用于有符号数时,结果取决于机器,若对负数左移是未定义的行为
位运算符的右侧运算对象不能是负的,而且要小于结果的位数,不然就未定义

sizeof并不实际计算值,返回类型的大小
sizeof的运算对象可以解引用一个无效指针
对引用进行sizeof得到的是被引用对象的空间大小
对指针进行sizeof得到的是指针本身的大小
对数组进行sizeof得到整个数组的大小,不会把数组转换为指针

整型和浮点型进行运算,整型会转换为浮点型
任何与long double进行运算的都会转换为long double
整型提升:只要所有值都能存在int中的,就提升为int类型,否则提升为unsigned int
扩展的char类型提升为int~unsigned long long 中的最小符合类型
带符号和无符号运算,若无符号>=带符号,带符号–>无符号。
若不然,则判断无符号能存放于带符号中,能则把它转为带符号,不能则把带符号转为它

static_cast不能用于底层const
const_cast只能用于改变底层const,如果去掉const之后就写的话会是未定义的行为
reinterpret_cast:对运算对象的位进行重新解释

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

烂人王

求求了 赏我吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值