本篇博文主要是介绍C语言中的几种运算符的用法
C语言中有这样几种运算符
1、算数运算符
2、关系运算符
3、赋值运算符
4、逻辑运算符
5、条件运算符
6、其他运算符
一、算数运算符
+ | 把右边的值加到左边的值上 |
+ | 作为一元运算符,生成一个大小和符号都与右边值相同的值 |
- | 从左边的值中减去右边的值 |
- | 作为一元运算符,生成一个与右边的值大小相等,符号相反的值。 |
* | 把左边的值乘以右边的值 |
/ | 把左边的值除以右边的值,如果两个运算对象都是整数,其结果要被截断 |
% | 得左边值除以右边值是的余数 |
++ | 把右边变量的值加1(前缀模式),或把左边变量的值加1(后缀模式) |
-- | 把右边变量的值减1(前缀模式),或把左边变量的值减1(后缀模式) |
二、关系运算符
< | 小于 |
<= | 小于或等于 |
== | 等于 |
> | 大于 |
>= | 大于或等于 |
!= | 不等于 |
以上的几个运算符都是把左边的值于右边的值相比较。如果关系为真,那么表达式的值为1;否则表达式的值为0。
我们来看一个例子,代码如下
#include <stdio.h>
int main()
{
int a = 1;
int b = 2;
printf("a 和 b 相同的? %d\n", a == b); //不一样所以是0
printf("a 大于 b? %d\n", a > b); //a小于b所以是0
printf("a 小与 b %d\n", a < b); //a确实是小于b,所以为真是1
printf("a 和 b 不相同 %d\n", a != b); //a和b不相同,为真,所以是1
return 0;
}
以上代码包函数了大多数的关系运算符,来看看得出的结果是什么
得出的结果和我们预期的是一样的。
三、赋值运算符
C语言中有一个基本赋值运算符合多个复合运算符
=运算符是基本的赋值运算符
= | 把它右边的值赋给其左边的左值 |
+= | 把左边的变量加上右边的变量,并把结果存储在左边的变量中 |
-= | 从左边的变量中减去右边的变量,并把结果存储在左边的变量中 |
*= | 把左边的变量乘以右边的变量,并把结果存储在左边的变量中 |
/= | 把左边的变量除以右边的变量,并把结果存储在左边的变量中 |
%= | 得到左边量除以右边量的余数,并把结果存储在左边的变量中 |
&= | 把L & R的值赋给左边的变量,并把结果存储在左边的变量中 |
|= | 把L | R的值赋给左边的变量,并把结果存储在左边的变量中 |
^= | 把L ^ R的值赋给左边的变量,并把结果存储在左边的变量中 |
>>= | 把L >> R的值赋给左边的变量,并把结果存储在左边的变量中 |
<<= | 把L << R的值赋给左边的变量,并把结果村春在左边的变量中 |
用一个例子来比较= 和 += 的结果
#include <stdio.h>
int main()
{
int a = 1;
int b = 2;
printf("a的值是%d\n", a = a + b);
a = 1; //重新给a、b赋值
b = 2;
printf("a的值是%d\n", a+=b);
return 0;
}
结果是
可以看出这两者的结果是一样的,所以其他的赋值运算符也是类似的。
四、逻辑运算符
&& | 逻辑与 |
|| | 逻辑或 |
! | 逻辑非 |
【注】!运算符只需要一个运算对象,其他两个运算符需要两个运算对象。
1、逻辑表达式
当且仅当两个表达式都为真时,expression1 && expression2的值才为真
两个表达式中至少有一个为真时,expression1 || expression2的值才为真
如果expression的值为假, 则 !expression 为真,反之亦然
2、逻辑表达式的求值顺序
逻辑与:当且仅当左侧运算对象为真时才对右侧运算对象求值。
逻辑或:当且仅当左侧运算对象为假时才对右侧运算对象求值。
五、条件运算符
?: 条件运算符有三个运算对象,每个对象都是一个表达式:expression1 ? expression2 : expression3
如果expression1为真,则整个表达式的值等于expression2的值,否则,整个表达式的值等于expression3的值。
我们来看个例子:
#include <stdio.h>
int main()
{
int a = 1;
int b = 2;
printf("表达式的值是%d\n", (a > b )? b : a);
//a<b所以a>b为假,整个表达式的值就是a;
int c = 2;
int d = 1;
printf("表达式的值为%d\n", (c > d) ? c : d);
//c > d表达式的值为真,所以整个表达式的值为c
return 0;
}
来看一下结果
得到的结果和预期的结果是一样的。
六、其他运算符
sizeof运算符
sizeof运算符以字节为单位返回运算对象的大小。
C语言规定,sizeof返回size_t 类型的值,这是一个无符号整数类型。
之前我们也用过这个运算符,这里再来回顾一下,
#include <stdio.h>
int main()
{
printf("sizeof(int) = %d\n", sizeof(int));
printf("sizeof(char) = %d\n", sizeof(char));
printf("sizeof(short) = %d\n", sizeof(short));
printf("sizeof(float) = %d\n", sizeof(float));
printf("sizeof(double) = %d\n", sizeof(double));
return 0;
}
得出的结果是这样的
这个例子是用来测试每个类型所占字节的大小,以上都是在32位编译环境中得出的结果。
本篇博文暂时介绍这么多常用的运算符。