运算符
- 运算符分为算术运算符 关系运算符 逻辑运算符 判断运算符等等,C语言中的运算符是非常多的,这篇文章着重讲解下算术运算符 ,赋值运算符和自增及自减运算符。
算术运算符
- 算术运算符分为一元运算符和二元运算符,一元运算符包括:+(数学中正负号的正) -(数学中正负的负),它们代表一个数的正负。二元运算符包括:+(加法的加),-(减法的减);* , /(代表数学中除法的商值),%(运算的结果为被除了后的余数)。
- 一元运算符代表只需要操作一个数,二元运算符代表操作两个数。
- + - * / %这些运算符的结合性均为向左。一元运算符号中的+ - 则为右结合。
- 关于它们的优先性则为* / %的优先级高于+ -。
赋值运算符
- 关于赋值运算符的符合有 = *= -= +=。
- 它们的结合性为右结合。
- *= -= += 为复合赋值运算符,关于它们的规则:
#include <stdio.h>
int main()
{
int a = 1;
a += 3;//等价于a = a+3,其结果为4.
a *= 3;//等价于a = a * 3,其结果为3.
a -= 3;//等价于a = a - 3,其结果为-2.
}
- 还有一点赋值运算符要求它的左操作数必须是左值,左值不能是常量或者是计算的结果,通常是变量。
自增运算符和自减运算符
- ++ --分别代表的是自增运算符和自减运算符。
- ++ --分为前置++ --,和后置++-- 两者所带来的效果都不一样:
#include <stdio.h> int main() { int a = 2; ++a;//此时a的结果变为了3. a++;//此时a的结果任然为2. a = a;//此时a的结果才变为了3. }
--是同样的道理。这是为什么呢?前置++或者--表示立即自增当前的变量,而后置++或者--表示的是先用旧的变量,稍后在自增这个旧的变量,这个稍后的时间差不多是到下一个语句时就行了。
-
++ -- 的结合都是右结合的,且后缀的++和--的优先级比一元运算符的+和-还要高,前缀的++和--的优先级和一元运算符的+和-相同。