一.算术运算符
- 算术运算是最常用的运算,C语言中的算术运算与数学中的算术运算不尽相同。
1.算术运算符
- 算术运算符有7个:+(正号),-(负号),*(乘号)在C语言中*不可以省略,/(除),%(求余)要求参与运算的都是整数,+(加),-(减)。
- @说明:求余运算的结果,其符号应与%前面那个数的符号相同,例如5%-3=+2,而-5%3=-2;
2.算术运算符的目数
- 7个运算符中,+(正号),-(负号)都是单目运算符,剩下的5个都是双目运算符,单目运算符是指它只需要一个运算量(即操作数),比如-5,只需要在负号后写一个数,前边不需要,故是单目运算符。而双目运算符则需要两个运算符,例如a+b。加号前各需要一个运算量。
3.算术运算符的优先级(不一定非要全部记忆,因为我也不能完全记住,想不起时直接查表)
二.赋值运算符和赋值表达式
- 赋值运算符就是=,表示“存储”,即把赋值号右边表达式的值存给右边的变量
1.左值的概念
- 可以出现在赋值号左边的式子,称为左值(left value)。左值必须有内存空间且允许赋值。常用的左值是变量,但常变量不是左值。
const int b=2;
a=2; //变量作为左值,正确
b=20; //语法错误;常变量不是左值
2.赋值运算符的结合性
- 从右至左。若有两个赋值号,要先执行右边的。
- 例如:a=b=2相当于是a=(b=2).
三.自增自减运算符
- 自增运算符++,自减运算符--。两个运算符都是单目运算符,都是右结合性,运算优先级与正负号相同。
1.自增运算符
- 自增运算符++分为前++和后++,写在变量前面的是前++,写在变量后面的后++。但是运行结果相同。
- 对于i++来说,因为i写在前面,++写在后面,所以先取i的值(即1)作为表达式(i++)的值,然后再给i加1,使i变成2.
所以左侧的“m=++i”就相当于
i=i+1 //先给i加1
m=i; //表达式(++i)的值赋给m
而右侧的“m=i++”;则相当于
m=i; //表达式(i++)的值赋给m;
i=i+1; //给i加1
用几段代码来体会一下
2.自减运算符与自加运算符类似。