1.算术操作符 : 加 减 乘(*) 除 取模(余数)(%)
eg: / 除
除号两端若都是整数,那么 float类型 算出的也是整数 即 4。若除号两端 有一方或两方 都是 小数,结果为4.5。比如9改为9.0
% 取模(余数)
2.移位操作符 : 右移操作符(>>) 左移操作符(<<) 看箭头指向
注:移动的是二进制位
2 的二进制是 10 (0对应的是2的0次方在乘0=0,1对应的是 2的1次方在乘1=2,0+2=2)
a是放在整形里的,整形是4个字节,一个字节=8个比特位,共32个比特位。
所以 int a = 2;(0000 0000 0000 0000 0000 0000 0000 0010)
int b = a<<1; 向左移动1位,最后一位永远补0。(000 0000 0000 0000 0000 0000 0000 00100)此时的1代表2^2(2的2次方=4)
3.位操作符 : 按位与(&) 按位异或(^) 按位或(|)
4.赋值操作符
eg : a = a - 3 可以写成 a -= 3; 其它同理。
5.单目操作符 : 只有一个操作数
!a a就是它的操作数
sizeof : 是一个操作符, 用来计算(类型,变量,数组,........) 的大小。
sizeof 求变量时括号可以省略,但求类型括号不会省略。一般我们在使用时不会省略括号。
补充:c语言如何计算一个数组/一个元素的大小?或数组元素的个数。
总结:所有元素的大小/一个元素的大小=数组元素的个数
~ : 按(二进制)位取反 : 把所有二进制位中数字,1变成0 , 0变成1
0 的二进制是 0 (0对应的是2的0次方乘0=0,0+ = 0)
a是放在整形里的,整形是4个字节,一个字节=8个比特位,共32个比特位。
所以 int a = 0;(0000 0000 0000 0000 0000 0000 0000 0000)
二进制:0000 0000 0000 0000 0000 0000 0000 0000
~a :1111 1111 1111 1111 1111 1111 1111 1111 (补码)
为什么是 -1?
总结 : 原码按位取反(符号位(最前面那个数)不变)=反码 + 1 = 补码
补码 - 1 = 反码 按位取反(符号位(最前面那个数)不变) = 原码
所以:~a :1111 1111 1111 1111 1111 1111 1111 1111 (补码) 为 -1.
++ :
注:这样写在其他编译器打印不出来,不研究,浪费时间 (一般学校卷子出)
6:关系操作符
7.逻辑操作符
&&:并且 (一假为假) || : 或者(一真为真)
8.条件操作符(三目操作符)
exp1 : a > b exp2: a exp3: b
9.逗号表达式 : 逗号隔开的一串表达式,并且从左到右依次计算。
10.下标引用、函数调用和结构成员
[] : 下标引用操作符
数组是由下标来访问的,并且从0开始
() : 函数调用操作符
还有4个操作符 ( & * . ->) ,以后再讲。