操作符详解


1、算术操作符(+、-、*、/、%)

%:两边的类型必须为整数

/:double、flout中除数与被除数之间有一个浮点数即可

+、-、*、/:两边的类型可以不一样

2、移位操作符(<<左移  >>右移)

逻辑右移:右移后左边添0

算术右移:右移后左边添加的位与以原数的符号位相同

在C语言中,左移右移对于无符号数(unsigned)都数逻辑的。对于负数,就要执行算术的。

然而数据在内存中都是以补码的形式储存。

+0: 00000000 00000000 00000000 00000000

-0:100000000 00000000 00000000 00000000

加1后就会溢出一个进位

@对于移位操作符,不要尝试去移动负数位,因为标准未定义。

 

因此得到:左移×2,右移÷2

3、位操作符(&、|、^)

主要针对二进制数之间的比较

4、逻辑操作符(&&、||)【存在短路现象】

在C语言中,称非0的数为真,0为假。

逻辑与:第一个表达式为0时,则为假,不在往后进行

逻辑或:第一个表达式为真时,则为真,不在往后进行

 5、条件表达式(三目运算符)

(表达式)?(表达式):(表达式)

6、逗号表达式

就是用逗号隔开的多个表达式,逗号表达式,从左向右依次进行,整个表达式的结果是最后一个表达式的结果

 7、访问结构体成员(结构体类型:struct stu)

C