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

原创 2015年11月20日 21:40:48

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的那个。

POJ 3237 Tree(树链剖分)

题目链接:点击打开链接 思路: 对于树上的路径更新操作, 我们通常把他hash到线段上, 也就是树链剖分, 大概完全理解了吧, 存个代码。 对于该题的反转操作,  可以里用异或操作的性质来做标记...

C++ primer第二次阅读学习笔记(第3章)

第三章     在头文件中应该使用完全限定的标准库名字,如std::cout。而不应该使用using std::cout;或using namespaces std;在头文件中放置using 声明,...

《C++ primer》英文第五版阅读笔记(六)——类型处理

类型处理 (一)类型别名 类型别名是另一个类型名字的同义词。,它能简化复杂的类型的定义,使这些类型使用起来更容易。类型别名也让我们知道了这个类型是干什么的。 定义:(1)使用typede...

《C++ primer》英文第五版阅读笔记(五)——const

const 限定词 被const修饰的变量的值不能被改变。 被const修饰的变量必须在定义时进行初始化。 const要放在类型名前面。 初始化 const对象能够做大多数nonconst对象...

《C++ primer》英文第五版阅读笔记(二十五)——函数基本知识

Chapter6.1——Function Basics 函数基本知识 函数是一个有名字的代码块。通过函数调用来执行函数内的代码。一个函数可能有0个或多个参数,但是只有一个返回值。函数可以进行...

《C++ primer》英文第五版阅读笔记(十三)——表达式基本知识

Chapter4,Section4.1——Fundamentals 基本原理 对于如何计算表达式的值有许多基本的概念,在这里先简短进行介绍,后面会进行详细的介绍。 (一)基本概念 操作符有一元...

《C++ primer》英文第五版阅读笔记(四)——复合类型

最近在读《C++primer》英文第五版,将一些重要内容记了了下来,有的地方可能理解的不到位,希望大家可以给予指正! 复合类型 复合类型是根据其它类型定义出来的类型。 C++包含许多的复合类型,其...

《C++ primer》英文第五版阅读笔记(十一)——Iterators

Chapter3,Section3.4

《C++ primer》英文第五版阅读笔记(三)——变量

变量定义:类型名 变量名1,变量名2,变量名3,......; 变量在定义时可以赋初值,也可以不赋初值。 变量初始化和赋值是不同的。初始化是在变量被创建给变量指定一个值时,赋值是把变量当前值用一个...

《C++ primer》英文第五版阅读笔记(九)——string(字符串)类型

Chapter3,Section3.2——Library string Type 类库中的string类型 string是一个含有许多字符的变长序列。要想使用string类型,必须...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:《C++ primer》英文第五版阅读笔记(十四)——算术运算符
举报原因:
原因补充:

(最多只允许输入30个字)