C语言的操作符主要有8种:算数操作符,移位操作符,位操作符,赋值操作符,单目操作符,关系操作符,逻辑操作符,条件操作符。
(1)算数操作符:主要有+,-,*,/,%。+,-,*,/可以作用于整数和浮点数,而%只能作用于整数,返回的是整除之后的余数。
(2)移位操作符:主要有左移<< 右移>>
左移规则:左边抛弃,右边补零,有乘2的效果;
右移规则:右移分为逻辑移位和算术移位。逻辑移位:左边补零,有除2的效果;算数移位:左边补的是符号位(绝大部分用的是算数移位)
左移和右移都不能移动负数位,正能移动正数位。
(3)位操作符:分为三种:&(与) ||(或) ^ (异或:相同为0,相异为1)要求它们的操作数必须是整数;
正数的原码,反码和补码一样;负数的反码是符号位不变,其他位取反,负数的补码是反码加1。
(4)赋值操作符:比如:int a = 0;
a = 2;
复合赋值操作符:+=,-=,*=, /=, %=, <<=, |=, %= 比如 : x=x+2可以写成 x+=2
(5)单目操作符:指只含有一个操作数。如:!(按位取反) sizeof(操作数的类型长度) -(负值) +(正值) &(取地址) ~(对一个数的二进制按位取反)等等。
着重注意 :sizeof(数组名)-----数组名表示的是整个数组----计算的是整个数组的大小;
&数组名-----数组名表示整个数组,这里取出整个数组的地址,单位是字节。
除了以上两种情况外,所有的数组名表示的是首元素的地址。
(6)关系操作符:> >= < <= ! ==
(7)逻辑操作符:&&(逻辑与) ||(逻辑或)
逻辑与:同真为真,有假为假
逻辑或:同假为假,有真则真
(8)条件操作符:exp1 ? exp2 : exp3
如找两个数的较大值: int max(a>b) ? a : b;