【计算机】2.4 C++的运算符和表达式.docVIP

  • 2
  • 0
  • 约1.08万字
  • 约 6页
  • 2018-02-26 发布于江苏
  • 举报

【计算机】2.4 C++的运算符和表达式.doc

【计算机】2.4C的运算符和表达式

C++的运算符和表达式 运算符是施加在数据上的重要操作,变量、常量通过操作符组合成C++的表达式,构成了C++程序的基本要素。本节将介绍C++语言中基本运算符和表达式。 2.4.1 C++中的基本运算符 运算是对数据的加工过程,而标识不同运算的符号称职运算符,参与运算的数据称为操作数。表2.3列出了C++中的基本运算符、其优先级及对操作数的结合性。 优先级 运算符 运算顺序 功能 17 17 :: :: 从右向左结合 从左向右结合 全局范围符(单目) 类范围符(双目) 16 16 16 16 16 →,. [ ] ( ) ( ) sizeof 从左向右结合 从左向右结合 从左向右结合 从左向右结合 从左向右结合 成员选择符 数组下标符 函数调用 类型结构 取类型存储大小 15 15 15 15 15 15 15 ++,-- ~ ! +,- *, () new,delete 从右向左结合 从右向左结合 从右向左结合 从右向左结合 从右向左结合 从右向左结合 从右向左结合 自增,自减 按位反 逻辑否 单目加,单目减 指针操作,取址 类型转换 动态空间管理 14 -*,.* 从左向右结合 成员指针选择 13 *,/,% 从左向右结合 乘法类运算 12 +,- 从左向右结合 加法类运算 11 , 从左向右结合 移位运算 10 ,=,= 从左向右结合 关系比较 9 = =,!= 从左向右结合 等值,不等值比较 8 从左向右结合 按位与 7 ^ 从左向右结合 按位异或 6 | 从左向右结合 按位或 5 从左向右结合 逻辑与 4 || 从左向右结合 逻辑或 3 ?: 从左向右结合 条件操作符 2 =,*=,/=,%=,+=,—=, =,=,=,|=,^= 从右向左结合 从右向左结合 赋值符 1 , 从左向右结合 逗号表达式 注:优先级相同的运算符,其执行顺序由该运算符在语句中的位置先后决定。 根据参与运算的操作数的类型不同,运算符可以分为单目运算符(1个操作数)、双目运算符(2个操作数)、三目运算符(3个操作数)。有一些运算符既可以是单目的,也可以是双目的,根据赋予该运算符的操作数的不同,运算符具有不同的功能。 例如: *pFile; var1*var2; 运算符的优先级和数学运算中的优先级意义相同,它决定了一个操作符在表达式的运算顺序,优先级越高,运算次序越靠前。而结合性则决定一个操作符对其操作数的运算顺序。如果一个操作符对其操作数的操作运算是自左向右执行的,则称该操作符是右结合的;反之如果一个操作符对其操作数的操作运算是自右向左执行的,则称该操作符是左结合实际的。 根据操作符表示的运算的性质不同,可以将C++中的操作符分为算术运算、关系运算符、逻辑运算符、赋值运算符、条件运算符、自增自减运算符、位运算符和sizeof运算符等。下面分别进行讨论。 1、算术运算符 表2.4列出了C++中的算术运算符。 表2.4 C++中的算术运算符 运算符 运算操作 例子 - 取负(单目) -var + 加法 var1+var2 - 减法(双目) var1-var2 * 乘法 var1*var2 / 除法 var1/var2 % 取模(余) var1%var2 对于单目运算符-,其返回值的数据类型与操作数的数据类型相同.对于双目运算符+、-、*和/,若其两个操作数的数据类型相同,则返回值的数据类型与操作数的数据类型相同;若两操作数的数据类型不同,则返回值的数据类型与字长较长的操作数的数据类型相同。 注意:两个整数相除的结果仍然是整数。若被除数不能被除数整除,则相除的结果将被取整,其小数部分将被略去。 例如:34/7; 12.5%3(非法) 35%7 在某些情况下,算术运算表达式会产生某些问题,计算的结果将给出错误或没有定义的数值,这些情况称为运算异常。对不同的运算异常,将产生不同的后果。在C++中,除数为零和实数溢出被视为一个严重的错误而导致程序运行的异常终止。而整数溢出则不被认为是一个错误(尽管其运算结果有可能与预期值不同)。因此,在一些与硬件打交道的低级程序中利用整数溢出查看设备的状态位等。 2、关系运

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档