本篇博文主要是介绍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位编译环境中得出的结果。
本篇博文暂时介绍这么多常用的运算符。
本文详细介绍了C语言中的各类运算符及其使用方法,包括算数、关系、赋值、逻辑及条件运算符等,并通过实例演示了它们的具体应用。
2858

被折叠的 条评论
为什么被折叠?



