~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
开发工具与关键技术:VS2015与 C++
撰写时间:2019/05/04
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
表达式是由数据和运算符,按求值规则,表达一个值的式子。
表达式可以分为:算术表达式/逻辑表达式/赋值表达式/条件表达式/逗号表达式。
自增自减:
| 算符 | 前缀式 | 后缀式 | 等价语句 |
自增 | + + | + + i | i + + | i = i + 1 |
自减 |
|
| i - - | i = i - 1 |
这两者到底有什么区别呢?
前缀式: 先加后赋值
int a = 0,b = 1;
b = ++a; à b = (a+1) à b == 1; a == 1;
后缀式:先赋值后加
已知 b == 1,a == 1;
b = a++; -> b == 1; a == 2;
类型转换:
强制转换,类型符 (类型)
(类型)(表达式)
赋值时的类型转换是用类型符实现的类型转换是强制性的
关系运算:要注意关系运算的正确使用。
不能使用 a <= x <= b
应该使用 a <= x && x <= b
赋值表达式:优先级很低,右结合,允许关联赋值
x = y = z + 2 ;
x = y = ( z + 2 ) ;
条件表达式:
条件表达式格式: E1 ? E2 : E3
其中的?称为条件运算符,是C++中唯一的三目运算符E1,E2,E3为表达式
若E1的值为true(非0),条件表达式的值为E2的值,即计算E2
若E1的值为false(0),条件表达式的值为E3的值,即计算E3
条件表达式的优先级比较低建议使用括号括住
例:max = a > b ? a : b;
逻辑表达式:
True(1) False(0) 表达式中求值非0都是true
逻辑运算符:
运算符 | 解释 | 结合性 |
&& | 逻辑与 | 左结合 |
|| | 逻辑或 | 左结合 |
! | 逻辑非 | 右结合 |
&& : 一假则假,全真为真 || : 一真则真
E1 && E2 当表达式 E1 的值为 0 时,不再对 E2 求值
E1 || E2 当表达式 E1 值为非 0 时,不再对 E2 求值
逗号表达式:运算级别最低,最后那一位获得表达式的值,也用于分隔符
a = 1 * 2,a + 1 à 2
a = ((1 * 2),a + 1) à 1
分隔符:fun(int a,int b);
运算符的优先关系(高到低)
单目运算符 |
乘除运算 |
加减运算 |
关系运算 |
逻辑与 |
逻辑或 |
赋值 |
逗号 |
键盘输入:
语句格式:cin >> 变量1 >> 变量2 …>>变量n;
例:int a;
cin >> a;
cout << a << endl;
屏幕输出语句格式:cout << 变量/常量 << endl;
屏幕输出(控制符):
控制符 | 功能 |
endl | 输出一个新行符,并清空流 |
ends | 输出一个空格符,并清空流 |
dec | 用十进制表示法输入或输出数值 |
hex | 用十六进制表示法输入或输出数值 |
Oct | 用八进制表示法输入或输出数值 |
setfill(char c) | 设置填充符 c |
setprecision(int n) | 设置浮点数输出精度(包括小数点) |
setw(int n) | 设置输出宽度 |
任何表达式加上一个分号成表达式语句