【C语言】操作符详解

一.算术操作符

+   -    *    /   %

注: 1.% 操作符只可用于整数与整数,返回值为两数的余数。
2. / 操作符,若两数均为整型,执行整型除操作,若有一数为浮点数,则执行浮点除操作。

二.移位操作符(基本单位为bit位)

将数据看成二进制数,对其进行向左或向右移动若干位的运算。移位运算符分为左移和右移两种,均为双目运算符。第一运算对象是移位对象,第二个运算对象是所移的二进制位数。

<<左移操作符
>>右移操作符

1.<<左移操作符规则:
左边抛弃,右边补0。
2.>>右移操作符规则(在c语言中用算术移位即可):
A.逻辑移位:右边抛弃,左边补0。
B.算术移位:右边抛弃,左边补原值符号位。
3.注意点:
A.num<<3 num不变
num = num << 3 才会改变num的值
B.左右移可以做快速乘除2运算。

三.位操作符

& 按位与
| 按位或
^ 按位异或
注:操作对象为整型。
#include<stdio.h>
#include<Windows.h>
int main()
{
	int a = 1;
	int b = 2;
	printf("%d\n", a&b);
	printf("%d\n", a|b);
	printf("%d\n", a^b);
	printf("%d\n", ~a);
	system("pause");
	return 0;
}

在这里插入图片描述
实例:使用异或交换两个数的值

#include<stdio.h>
#include<Windows.h>
int main()
{
	int a = 1;
	int b = 2;
	a = a ^ b;
	b = a ^ b;
	a = a ^ b;
	system("pause");
	return 0;
}

四.赋值操作符

=
复合赋值符:+=   -=   *=   /=   %=   &=   |=   ^=   <<=   >>=

注:x = y = z + 1 ; 可拆分为y = z + 1 ; x = y ;

五.单目操作符

1.!      逻辑非
2.+       正值
3.-       负值
4.&       取地址
5.++      自增
6.--      自减
7.*       解引用
8.(类型) 强转
9.sizeof  数据长度(以字节为单位)

注:sizeof 不可以在子函数中求原数组大小,因为传入为数组指针,大小为4字节。

六.关系运算符

<   >    <=    >=   !=    ==

七.逻辑操作符

&&   逻辑与
||      逻辑或

八.条件操作符

exp1 ? exp2  : exp3
例: 
    a = a > 5 ? a+b : a-b;
等价于
  	if(a > 5)
	a += b;
    else
    a -= b;

九.逗号表达式

用逗号隔开的多个表达式,从左到右依次执行,结果为最后一个表达式结果
1. int c = (a > b, a = b + 10, a + b);
2.if (a > b, a = b + 1, b > 0);

十.操作符优先级

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

发布了53 篇原创文章 · 获赞 49 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_43550839/article/details/98439341
今日推荐