除了我们昨天说的那些运算符在C语言还有其他有趣的运算符。
复合赋值
5个算术运算符,+ - * /
%
**,可以和赋值运算符“=”结合起来,形成复合赋值运算符: “+=”、"_=”、“ =”、“/=”和“%=”。
比如total = total + 5;
我们可以写成total += 5;
在这里我们要注意两个运算符中间不要有空格
我们看一张表格来了解一下他们:
运算符 | 描述 | 实例 |
---|---|---|
= | 简单的赋值运算符,把右边操作数的值赋给左边操作数 | C = A + B 将把 A + B 的值赋给 C |
+= | 加且赋值运算符,把右边操作数加上左边操作数的结果赋值给左边操作数 | C += A 相当于 C = C + A |
-= | 减且赋值运算符,把左边操作数减去右边操作数的结果赋值给左边操作数 | C -= A 相当于 C = C - A |
*= | 乘且赋值运算符,把右边操作数乘以左边操作数的结果赋值给左边操作数 | C *= A 相当于 C = C * A |
/= | 除且赋值运算符,把左边操作数除以右边操作数的结果赋值给左边操作数 | C /= A 相当于 C = C / A |
%= | 求模且赋值运算符,求两个操作数的模赋值给左边操作数 | C %= A 相当于 C = C % A |
实例 请看下面的实例,了解 C 语言中所有可用的关系运算符:
#include <stdio.h>
int main()
{
int a = 21;
int c ;
c += a;
printf("Line 2 - += 运算符实例,c 的值 = %d\n", c );
c -= a;
printf("Line 3 - -= 运算符实例,c 的值 = %d\n", c );
c *= a;
printf("Line 4 - *= 运算符实例,c 的值 = %d\n", c );
c /= a;
printf("Line 5 - /= 运算符实例,c 的值 = %d\n", c );
c = 200;
c %= a;
printf("Line 6 - %%= 运算符实例,c 的值 = %d\n", c );
}
结果:
递增递减运算符
“++”和“–”是两个很特殊的运算符,它们是单目运算符,这个算子还必须是变量。这两个运算符分别叫做递增和递减运算符,他们的作用就是给这个变量+I或者-l。
count++;
count += l;
count = count + l;
运算符 | 描述 | 实例 |
---|---|---|
++ | 自增运算符,整数值增加 1 | A++ 将得到 11 |
– | 自减运算符,整数值减少 1 | A-- 将得到 9 |
前缀后缀
++和–可以放在变量的前面,叫做前缀形式,也可以放在变量的后面,叫做后缀形式。 a++的值是a加1以前的值,而++a的值是加了1以后的值,无论哪个,a自己的值都加了1了。
#include <stdio.h>
int main()
{
int a ;
a = 21;
printf("a++=%d\n",a++);
printf("a=%d \n",a);
printf("++a=%d\n",++a);
printf("a=%d\n",a);
return 0;
}
结果:
一张表格来理解前缀后缀:
表达式 | 运算 | 表达式的值 |
count++ | 给count加1 | count原来的值 |
++count | 给count加1 | count+1以后的值 |
count– | 给count减1 | count原来的值 |
–count | 给count减1 | count-1以后的值 |