C语言操作运算符
算术运算符
- + - * /
均可作用于整数或浮点数。
- x / y
若想得到一个浮点数,则至少第一运算符(x)必须为浮点数。
例:1 / 2 = 0;1.0 / 2 = 0.5;
- x % y
1)只可作用于整数;
2)求余的结果按 x % y = x - x / y * y ,则余数的符号取决于第一运算符的结果。
例:11 % 2 = 1;-11 % 2 = -1;
移位运算符
- x << n
将x的各个二进位按顺序往左移动n位,移出的位舍弃,右侧空出位补 0。
- x >> n
1)逻辑移位:将x的各个二进位按顺序往右移动n位,左边补0,右边丢弃。
2)算术移位:将x的各个二进位按顺序往右移动n位,左边补原值的符号位,右边丢弃。
注:移动负数位为未定义行为。
位操作符
- x & y
1)x 与 y 都为真为真,一假为假。
2)1 & x = x ;0 & x = 0
- x | y
1)x 与 y 都为假为假,一真为真。
2)1 | x = 1;0 | x = x
- x ^ y
1)x,y相同为假,相异为真。
2)1 ^ 1 = 0;1 ^ 0 = 1
- ~ x
1)取反
2) ~110 => 001
赋值运算符
- =
int x = 0; x = 10;
- 复合赋值符
+= -= *= /= %= >>= <<= &= |= ^=
x += 10; => x = x+ 10;
单目运算符
- -(负号) +(正号) &(取地址)
- ++ --
1)前置 ++/--
2)后置 ++/--
- *(解引用 / 简介访问)
- (类型)x (强制类型转换)
- sizeof() (操作数的类型长度,以字节为单位)
关系操作符
< <= > => != ==
- = 与 == 不一样,一个为赋值操作符,一个为关系操作符
逻辑操作符
- &&(逻辑与)
- ||(逻辑或)
- !(逻辑非)
条件操作符
- m ? x : y
逗号操作符
- x, y, z,……
下标引用、函数调用和结构成员
- [ ]
- ( )
- . ->