输入输出
printf和scanf的使用
printf和scanf输出输入格式
| Type | Example | 
|---|---|
| char | %c | 
| short int | %hd | 
| int | %d | 
| long int | %ld | 
| float | %f | 
| double | %f | 
表达式
算数运算符
常见运算符
| 运算符 | 意义 | 
|---|---|
| + | 加法运算符 | 
| - | 减法运算符,或者负数云算法 | 
| * | 乘法运算符 | 
| / | 除法运算符(整数相除,省略小数) | 
| % | 模运算符,取余运算符(%两侧均为整数) | 
| ### 运算循序 | |
| 1> 算术表达式:用算术运算符将数据连接起来的式子,例如 2 + 4,3 *5等。 | |
| 表达式的运算顺序是按照运算符的 结合方向和优先级进行的。 | |
| 2> 结合方向 | |
| 算术运算符的结合方向从左到右。 | |
| 3> 优先级 | |
| 优先级越高,就越先计算,当优先级相同时,参考结合方向。下面是优先级的排序 | |
| 负值运算符(-) > 乘(*)、除(/)、模(%) > 加(+)、减(-) | |
| 4> 小括号 | |
| 如果被()括起来,那么优先级是最高。 | |
| ### 注意点 | |
| 1. 自动类型转换, 自动将大类型转换称小类型,会丢失精度 | |
| 2. 强制类型转换 | 
赋值运算符
- 简单赋值运算符
 赋值运算符的结合方向:从右到左,而且优先级低于算数运算符
- 复合赋值运算符
 += : 如 a+=2等价于,a = a+2;
 -= : 如 a-=2等价于,a = a-2;*= : 如 a*=2等价于,a = a*2;
 /= : 如 a+=2等价于,a = a+2;
 %= : 如 a+=2等价于,a = a+2;
自增和自减
- ++- 先加,后用 ++a
- 先用,后加 a++
 
- 先加,后用 
- –- 先减,后用 --a
- 先用,后减 a--
 
- 先减,后用 
sizeof
用来计算一个变量或者一个常量、一种数据类型所占的内存字节数
逗号运算符
- 主要用于连接表达式
- 从左到右依次计算
- 整个都好运算符,是最后一个表达式的值
关系运算符
| 运算符 | 意义 | 
|---|---|
| < | 小于 | 
| <= | 小于等于 | 
| > | 大于 | 
| >= | 大于等于 | 
| == | 等于 | 
| != | 不等于 | 
关系运算符的结果只有两种,条件成立结果是“1”,不成立为“0”;
优先级
- <、<=、>、>=优先级大于 ==、!=优先级
- 结合方向,“从左到右”
- 优先级低于算术运算符
逻辑运算符
| 运算符 | 意义 | 计算规则 | 
|---|---|---|
| && | 与 | 两个为真才为真 | 
| || | 或 | 一个为真就为真 | 
| ! | 非 | !真为假,!假为真 | 
三目运算符
- 条件运算符表达式1?表达式2:表达式3; 
 表达式1为真,执行表达式2,反之执行表达式3
控制结构
3种流程控制结构
- 顺序结构:默认的流程结构。
- 选择结构:对给定的条件进行判断,再根据判断来决定执行哪一段代码。
- 循环结构:在给定条件成立的情况下,反复执行莫一段代码。
选择结构
- if(){}else{}
- switch(){case :}
循环结构
- while - while(条件){ 语句1; …… } //条件成立(为真),就执行{}中内容,条件不成立,就不执行
- do-while - do{ 语句1; }while(条件); // 先执行一遍{}中内容,再判断'条件'是否成立,成立继续执行,不成立,不执行。
- for 
 ```
 /*
 执行循序:
- 初始化表达式(只在开始的时候执行一次) 
- 循环条件表达式(返回值只有两种,真 或 假) 
- 2返回为真时,执行{}中内容。为假时,退出循环 
- 执行一次{}后,执行“循环后的操作表达式” 
- 再执行第2步,循环下去。 
*/
for(初始化表达式;循环条件表达式;循环后的操作表达式){
    执行语句;
}
```
- break和continue
 break常使用与switch和循环结构中,用于跳出switch或循环
 continue常用于循环结构中,用于跳出本次循环
 
                 
                        
                        