学学习网 手机版

学学习网

学习路径: 学习首页 > 应用开发 > c++ >

第二节 C++语法规则(9)

设置字体:
----------------------------------

当多个操作数组成复杂的表达式时,我们可能会疑惑哪个运算先被计算,哪个后被计算。例如以下表达式:
a = 5 + 7 % 2
我们可以怀疑它实际上表示:
a = 5 + (7 % 2) 结果为6,还是 a = (5 + 7) % 2 结果为0?
正确答案为第一个,结果为6。每一个运算符有一个固定的优先级,不仅对数学运算符(我们可能在学习数学的时候已经很了解它们的优先顺序了),所有在C++中出现的运算符都有优先级。从最从最高级到最低级,运算的优先级按下表排列:
优先级
Level
操作符
Operator
说明
Description
结合方向
Grouping
1 :: 范围 从左到右
2 () [] . -> ++ -- dynamic_cast static_cast reinterpret_cast const_cast typeid 后缀 从左到右
3 ++ -- ~ ! sizeof new delete 一元(前缀) 从右到左
* & 指针和取地址
+ - 一元符号
4 (type) 类型转换 从右到左
5 .* ->* 指向成员的指针 从左到右
6 * / % 乘、除、取模 从左到右
7 + - 加减 从左到右
8 << >> 位移 从左到右
9 < > <= >= 关系操作符 从左到右
10 == != 等于、不等于 从左到右
11 & 按位与运算 从左到右
12 ^ 按位异或运算 从左到右
13 | 按位或运算 从左到右
14 && 逻辑与运算 从左到右
15 || 逻辑或运算 从左到右
16 ?: 条件运算 从右到左
17 = *= /= %= += -= >>= <<= &= ^= |= 赋值运算 从右到左
18 , 逗号 从左到右
 
结合方向Grouping定义了当有同优先级的多个运算符在一起时,哪一个必须被首先运算,最右边的还是最左边的。
所有这些运算符的优先级顺序可以通过使用括号parenthesis signs (和)来控制,而且更易读懂,例如以下例子:
a = 5 + 7 % 2;
根据我们想要实现的计算的不同,可以写成:
a = 5 + (7 % 2); 或者
a = (5 + 7) % 2;
所以如果你想写一个复杂的表达式而不敢肯定各个运算的执行顺序,那么就加上括号。这样还可以使代码更易读懂。
 
 
 
 控制台交互(Communication through console)

控制台(console)是电脑的最基本交互接口,通常包括键盘(keyboard)和屏幕(screen)。键盘通常为标准输入设备,而 屏幕为标准输出设备。
在C++的iostream函数库中,一个程序的标准输入输出操作依靠两种数据流:cin 给输入使用和cout给输出使用。另外,cerrclog也已经被实现――它们是两种特殊设计的数据流专门用来显示出错信息。它们可以被重新定向到标准输出设备或到一个日志文件(log file)。
因此cout (标准输出流)通常被定向到屏幕,
----------------------------------
课程列表
重点难点
赞助链接