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 : exp3exp1成立则返回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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值