### 运算符表达式和语句

#### 1.基本运算符

* =

* 数据对象:泛指数据在内存的存储区域
* 左值:表示可以被更改的数据对象
* 右值:能赋给左值的量

* +:加

* -:减

* *:乘

* /:除

* %:取余数

* +=:加等于

* -=:减等于

* *=:乘等于

* /=:除等于

* %=:取余等于

* ++:自加1

* i++先计算表达式的值,然后在++(加一)
* ++i是先++(加一),在计算表达式的值

* --:自减1

* 逗号运算符

``` c
int a=2;
int b=3;
int c=4;
int d=5;
int i=(a=b,c+b);
//逗号表达式先求逗号左边的值,然后求右边的值,整个语句的值是逗号右边的值
```

#### 运算符优先级

| 优先级 | 运算符 | 结合性 |
| ------ | :----------------------------------------------------------: | -------- |
| 1 | ++(后缀),--(后缀),()(调用函数),{}(语句块),.,-> | 从左到右 |
| 2 | ++(前缀),--(前缀),+(前缀),-(前缀),!(前缀),~(前缀),sizeof,*(取指针值),&(取地址),(type)(类型转化) | 从右到左 |
| 3 | *, /, % | 从左到右 |
| 4 | +,- | 从左到右 |
| 5 | << >> | 从左到右 |
| 6 | < > <= >= | 从左到右 |
| 7 | == != | 从左到右 |
| 8 | & | 从左到右 |
| 9 | ^ | 从左到右 |
| 10 | \| | 从左到右 |
| 11 | && | 从左到右 |
| 12 | \|\| | 从左到右 |
| 13 | ? | 从右到左 |
| 14 | =,*=,%=,+=,-=,<<=,>>=,&=,\|=,^= | 从右到左 |
| 15 | ,(逗号运算符) | 从左到右 |

* 复合语句
* {}代码块
* 空语句
* 只有一个;号的语句就是空语句,空语句在C语言里面和合法的,并且是在某些场合必用的
* 类型转换
* 隐式转换
* 强制转换

posted @ 2020-09-23 00:43  老色批  阅读(498)  评论(0)    收藏  举报