C语言操作符——简单总结

操作符的分类:

1.算术操作符
2.移位操作符
3.位操作符
4.赋值操作符
5.复合操作符
6.关系操作符
7.逻辑操作符
8.单目操作符
9.条件操作符
10.逗号表达式
11.下标引用,函数调用,结构成员

算术操作符

种类 注意事项
+
-
*
/ 除数不能为 0
% 操作数必须是两个整数

提醒:在进行算术运算时,要注意运算过程中类型的隐式转换

移位操作符

种类 作用 注意事项
<< 按二进制左移 ,高位抛弃,低位补0 类似于*2^n
>> 逻辑右移:按二进制右移,低位抛弃,高位补0;
算术右移:按二进制右移,低位抛弃,高位补符号位(0或1)
类似于/2^n
一般用的是算术右移
负数在计算机中按补码存放

提醒:移位操作相比于普通的算术操作,运算时间会短一些,但是在写代码的过程中,算术运算的优势体现的更明显一些,首先是代码的可读性强,其次是编译器会进行算术运算到移位操作的自动转化优化,因此无需再担心运算时间的问题。

位操作符

种类 作用 注意事项
& 按二进制进行与运算
I 按二进制进行或运算
^ 按二进制进行异或运算 a ^ b ^ a == a

赋值操作符

种类 注意事项
= 注意赋值类型

复合操作符

种类 注意事项
+=
-=
*=
/=
%=
a += b;
等价于a = a + b;
>>=
<<=
a >> b
等价于a = a >> b;
&=
I=
^=
a & b
等价于a = a & b;

关系操作符

种类 注意事项
>
<
>=
<=
==
!=
==不要与=混淆
!= 是不等于的意思

提醒:关系操作符时常与逻辑操作符搭配,如 a > 1 && a < 10
但是不能写成 1 < a < 10

逻辑操作符

种类 作用 注意事项
&& 按逻辑与进行判断 区分位操作符&
II 按逻辑或进行判断 区分位操作符 I

提醒:逻辑操作符又称作短路操作符,如果&&和II的第一个操作数能够确定整体的值,则第二个操作数不再判断。

单目操作符

种类 作用 注意事项
! 逻辑反 返回值为 0 或 1
+
-
求一个数的正负后值 int a = -1;
a = +a;
a的值仍然为 -1
sizeof() 求操作数的长度 该操作数可以为变量,类型,数组名,指针
~ 对二进制数按位取反
++
- -
对操作数加1或减1 ++i 和 i++的区别
* 间接访问操作 在指针使用,称作解引用操作
(类型) 强制类型转换

提醒:不要将sizeof()误认为是函数

条件操作符

种类 作用 注意事项
exp1 ? exp2 : exp3 exp1成立则返回exp2,否则返回exp3 条件操作符又称作三目操作符
条件操作符的优先级最低

提醒:上述条件操作符等价于:

if (exp1) {
	return exp2;
} else {
	return exp3;
}

逗号表达式

种类 注意事项
exp1, exp2, exp3, …, expn 从左到右依次执行
但整个表达式的结果为最后一个表达式的结果expn

提醒:逗号表达式的作用可能不是很明显,比如看下列代码

int a = 1;
int b = a;
if (a > 0) {
	...
}

用逗号表达式来表示:

int a, b;
if (a = 1, b = a, a > 0) {
	...
}

其实还是第一段代码比较好

下标引用,函数调用,结构成员

种类 注意事项
[ ] arr[index]
index >= 0
() Fac()
()内存放参数,区别形参和实参
.
->
直接访问结构体成员:student.name
间接访问结构体成员:student -> name

猜你喜欢

转载自blog.csdn.net/qq_42957923/article/details/84255286