一.强制转换
(数据类型)变量名 【显示转换】
若运算符两边类型不匹配时,
系统会默认触发隐式的强转,规则如图
二,算数运算符
不会输出 a+b<0,因为 a会触发隐式转换,int a=4会转化为无符号类型整数
结果为a+b=4294967292
进入末行模式后,gg可使光标快速到最上面,GG可使光标快速到最下面
整数和整数相乘结果是整数,相除结果也是整数,想输出小数的话要先将其转化为小数,可在后面乘以一个小数(带括号的原因是让其先进行运算,如果不加括号结果仍是整数)
取余运算符%(取模)——只能针对整数
想输入%时,需要连续打出两个百分号
三,自增,自减运算符
++(--)在变量之后是先参与运算再自增(自减)
++(--)在变量之前是先自增(自减)再运算
原则:尽量不用
四,关系运算符
> < >= <= ==(等于) !=(不等于)
结果:真(成立,1表示),假(不成立,0表示)
在c语言中非0都为真
五,逻辑与运算符
&&逻辑与(短路与)
条件1 && 条件2 此表达式的结果要成立,条件1,2需要同时成立
短路特征:只要有一个条件为0,后面的条件就不会去执行
逻辑与在使用时,不止可以对两个条件进行逻辑与操作,可以同时有多个表达式
||逻辑或(短路或)
条件1 || 条件2 此表达式的结果要成立,条件1,2成立一个即可
短路特征:只要有一个条件为1,后面的条件就不会去执行
!逻辑非
! 条件1 将假的变成真,真的变成假
逻辑预算符的结果是成立或不成立
六,位运算符
是对二进制位进行运算的符号
&按位与 全1则1,有0则0
|按位或 有1则1,全0则0
^ 按位异或 相同为0,不同为1
不使用中间变量交换两个变量的值
按位取反 ~
左移运算符:<< 右边补0,左边丢弃,即补码左移两位
结论:左移1位相当于乘2,左移x位相当于乘2^x
右移运算符:>>
算数右移:针对有符号数据,低位丢弃,高位补符号位
逻辑右移:针对无符号数据,低位丢弃,高位补0
七,赋值复合运算符
num=num>>2 等价于num>>=2
八,三目运算符
三目运算符:(三个运算符)
格式:条件表达式?表达式1:表达式2;
含义:如果条件表达式成立,整个表达式的值是表达式1,否则是表达式2
九,逗号运算符
逗号运算符的优先级最低
格式:ret = 表达式1,表达式2,表达式3,。。。表达式n
按顺序执行表达式,并将表达n的结果,作为整个表达式的值赋值给ret
单目运算符:!,~
总结:
算数运算,关系运算,逻辑运算,位运算,赋值运算符
算数运算>关系运算>逻辑运算>赋值运算符