c语言运算符

运算符是编译器中执行特定的数学步骤或逻辑运行操作的符号。

C语言中大致有以下几种运算符:

1.算术运算符

2.关系运算符

3.位运算符

4.逻辑运算符

5.杂项运算符

6.赋值运算符 

算术运算符

运算符描述(假设A=10,B=30)实例
+类似于数学中的加法,把两个操作数相加A+B得到40
-类似于数学中的减法,第一个操作数减第二个A-B得到-20
*把两个操作数相乘A*B得到300
/分子除以分母B/A得到3
%第一个操作数除以第二个操作数留下的余数B%A得到0
++自增运算符++A得到A的值加1
--自减运算符--A得到A的值减1

实例 

#include<stdio.h>
int main()
{
	int A = 10;
	int B = 30;
	int C;
	C = A + B;
	printf("A加B的值为:%d\n", C);
	C = A - B;
	printf("A减B的值为:%d\n", C);
	C = A * B;
	printf("A*B的值为:%d\n", C);
	--A;
	printf("%d\n", A);
	++A;
	printf("%d\n", A);
	C = B / A;
	printf("C的值为:%d\n", C);
	C = B % A;
	printf("C的值为:%d\n", C);
		return 0;
}

 

关系运算符

运算符描述(设表达式1变量A=10,表达式2变量B=20)实例
<小于表达式,表达式1小于表达式2时为真,否则为假A<B为真
<=小于等于表达式,表达式1小于等于表达式2时为真,否则为假A<=B为真
>大于表达式,表达式2大于表达式1B>A为真
>=大于等于表达式,表达式1大于等于表达式2时为真,否则为假B>=A为真
!=检查两个表达式操作数是否相等,不相等条件为真A!=B为真
==检查两个表达式操作数是否相等,相等时条件为真A==B为真

位运算符

运算符描述运算规则
&与位运算符,若两个操作数对应的位都为1,那么结果为1,否则为0。

1&1=1;
1&0=0;

|

或位运算符,若两个操作数中对应的位至少有一个1,结果为1,
1|0=1;
1|1=1;
0|0=0;

^异或位运算符,对两个操作数的每一位执行逻辑异或操作,如果两个相应的位值相同,则结果为 0,否则为 1。
0^0=0;   
0^1=1;   
1^0=1;  
1^1=0;

~取反位运算符·,对两个操作符进行取反逻辑运算
~1=-2;   
~0=-1;

<<二进制左移运算符。将操作数的所有位向左移动指定的位数。左移 n 位相当于乘以 2 的 n 次方。将一个运算对象的各二进制位全部左移若干位(左边的二进制位丢弃,右边补0)。
>>

将操作数的所有位向右移动指定的位数。右移n位相当于除以 2 的 n 次方。

二进制右移运算符

将一个数的各二进制位全部右移若干位,正数左补 0,负数左补 1,右边丢弃。

赋值运算符 

运算符描述案例
=基础运算符,将右边的操作数值赋值给左边的操作数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 <<= 2 等同于 C = C << 2
>>=右移且赋值运算符C >>= 2 等同于 C = C >> 2
&=按位与且赋值运算符
C &= 2 等同于 C = C & 2
^=按位异或且赋值运算符C ^= 2 等同于 C = C ^ 2
|=按位或且赋值运算符C |= 2 等同于 C = C | 2

杂项运算符

运算符描述(设a=3)实例
sizeof()返回变量的大小返回a的值为3
&返回变量的地址。&a; 将给出变量的实际地址。
*指向一个变量。*a; 将指向一个变量。
? :条件表达式如果条件为真 ? 则值为 X : 否则值为 Y

赋值运算符(设变量A的值为1,变量B的值为0)

运算符描述实例
&&称为逻辑与运算符。如果两个操作数都非零,则条件为真。(A && B) 为假。
||称为逻辑或运算符。如果两个操作数中有任意一个非零,则条件为真。(A || B) 为真。
!称为逻辑非运算符。用来逆转操作数的逻辑状态。如果条件为真则逻辑非运算符将使其为假。!(A && B) 为真。
int main()
{
	int a = 5;
	int b = 20;
	if (a || b)
	{
		printf("a||b 为真\n");
	}
	/* 改变 a 和 b 的值 */
	a = 0;
	b = 10;
	if (a && b)
	{
		printf("a&&b为真\n");
	}
	else
	{
		printf("a&&b为假\n");
	}
	if (!(a && b))
	{
		printf("!(a && b)为真\n");
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值