LinuxC——运算符

本文详细介绍了C语言中的各类运算符及其使用方法,包括算数、关系、赋值、逻辑及条件运算符等,并通过实例演示了它们的具体应用。

本篇博文主要是介绍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位编译环境中得出的结果。

本篇博文暂时介绍这么多常用的运算符。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值