《C++ primer》英文第五版阅读笔记(十四)——算术运算符

Chapter 4,Section4.2——Arithmetic Operators

算术运算符


运算符:一元:+加   -减   用途:+ expr、- expr

      *乘   /除   %求余  用途:expr *(/)(%) expr

      二元: +加  -减    用途:expr +(-) expr

同级优先左结合,优先级从上到下递减。高优先级的运算符比低优先级的运算符组合的更紧密。

除非特别说明,否则任意算术类型或者任意能够转换为算术类型的类型都能够使用算术运算符。这些运算符的操作数及结果都是右值。算术运算中,所有的小整型的操作数都会被转换为大整形的操作数,所有的操作数最后都会转换为相同的类型。

一元和二元的加减运算符可以用于指针上。

当在指针或算术值上使用一元加减运算符时,一元的加通常返回操作数本身,一元的减通常返回操作数的负值,这两种情况下可能发生类型的提升。

初始化器的值是非0时,转换为布尔值是true。


再使用算术表达式的时候要注意值的溢出和一些其它的算术异常(例:被0除)问题。

当一个值不在相应类型能够表示的范围内时,则会发生溢出。在大多数的系统中,发生溢出时并没有编译时或运行时的警告,有时溢出的值是呈“环形”的。


%的操作数必须是整数类型。

在进行除运算时,当除数和被除数同号时,商是正的,否则商是负的。早起版本的语言允许负的商四舍五入;新标准里要求商要向0取整。


取模运算符要求m和n都要是整数,并且n是非0的,那么(m/n)*n+m%n就与m相等了。

如果m%n是非0的,它的符号就和m一样。早起版本的语言在负的m/n向0取整时允许m%n和n的符号一样,但是现在禁止这种操作。除了-m溢出的情况,(-m)/n和m/(-n)和-(m/n)相等,m%(-n)和m%n相等,(-m)%n和-(m%n)相等。


“向0取整”:要求计算结果区最靠近0的那个。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值