算术操作符
+ - * / 计算机打不出x,所以用*
两端都为整数时,进行的是整数除法
不管是int 还是float 类型,当两边为整数时都是整数除法
如果要得到小数,一边要为小数
%为取余号
移动运算符
<< 左移,>>右移
例如:
原理如下;
将a的二进制 10 左移一位,为100.
再将100二进制转化为十进制就为1*2^2
结果为4.
位操作符
& 按位与
| 按位或
^ 按位异或
单目运算符
-
+
!逻辑非
0表示假,1表示真
& 取地址符
sieof
sizeof不是函数
sizeof是一个操作符
计算类型和变量的字节大小
例1:
结果都为4,是因为int的字节为4,而int就是a,所以都一样。
例2:
当sizeof计算数组时,计算数组的总大小,单位为字节。
~ 按位取反
例1:
int的为四字节32位,变成二进制位00000000000000000000000000000000
按位取反后,将0变成1,将1变成0
取反后为11111111111111111111111111111111
因为整数在内存中的存储为补码,因为printf中用的是“%d”为真实值,得到原码。
所以上面的得到的11111111111111111111111111111111为补码
需要将其转换为原码后显示
过程如下
11111111111111111111111111111111(补码,补码减一为反码)
11111111111111111111111111111110(反码,反码加一为补码)
1000000000000000000000000001(原码)
其中最前面的一为符号位 ,一个整数的最高次位为符号位
变化过程中,符号位不变,其他取反
符号位为1为负,为-号,二进制换算成十进制后为1
所以答案为-1
注意正整数的原,反,补码相同。
1.前置++
前置++,是先++,后使用
2.后置++
先使用,后++
3.(类型) 强制类型转换
正常情况下,会报警告,可能导致数据丢失。
可以在3.14前加强制类型转换来解除警告。
二.关系操作符
逻辑操作符
逻辑与
同真为真,真为1
一假为假
逻辑或
一真为真,同假为假
两真为真
同假为假
条件操作符(三目操作符)
?: 三个操作数,所以叫三目操作符
exp1 成立,exp2计算,整个表达式的结构是:exp2的结果
exp1不成立,exp3计算,整个表达式的结构是:exp3的结果
相比原来的选择结构可以简化很多
逗号表达式
是逗号隔开的一串表达式
// 逗号表达式,是从左往右依次计算
//整个表达式的结果是最后一个表达式的结果
计算过程为a=3+2=5, c=5-4=1,b=1+2=3
此过程会影响原本的a,b,c的值·
下标引用,函数调用,结构成员
下标引用符 [ ]
函数调用操作符 ( )