算术操作符: + 加 - 减 * 乘 / 除 % 取余
移位操作符:<< 左移操作符 >> 右移操作符
位操作符:& 按位与 丨 按位或 ^ 按位异或
赋值操作符:= += -= *= /= &= 丨= >>= <<=
单目操作符 :! 逻辑反操作 - 负值
: + 正值 & 取地址
: sizeof 操作数的类型长度(后面不是函数括号可以省略,通常不省略)
: ~ 对一个数的二进制按位取反
:++ 前置,后置++ -- 前置后置--
:* 间接访问操作符(解引用操作符)
(类型) 强制类型转换
a+b +有两个操作数 所以为双目操作符
单目操作符:只有一个操作数
/运算中 如果/的双方都是整数 进行的是整数除法 算出来的没有小数
9/2=4
如果要求出小数:/的两端有一个小数,算出来就是小数
9/2.0=4.5
%-取模(取余):9%2=1→商4余1
左移操作符:移动的是二进制位
/:
int a=9/2
printf(“%d",a) 打印出来4
%:
int a=9%2
printf("%d",a) 打印出来1
<<:
int a=2 a的二进制:10
int b=a<<1 a是整型,整型4个字节,8个比特位
printf("%d",a) a的二进制序列:00000000000000000000000000000010 →一共32位
打印出来为4 左移:整体左移,在最右侧补0(只能补0)
左移后:00000000000000000000000000000100
1位于第三位→1*2^2=4
+=
int a=2
a=a+5(a+=5)
!:把真变成假,把假变成真
0表示假,非0表示真(规定真为1)
int a=10 int a=0
printf("%d",!a) printf("%d",!a)
打印出来为0 打印出来为1
if(a) if(!a)
{ {
(如果a为真)....... (如果a为假).......
} }
sizeof(计算数组)
printf("%d",sizeof(int))=printf("%d",sizeof(a))
int a[10]={0}
printf("%d",sizeof(a)) 打印出来为40→10个元素 每个元素一个int
计算的是数组的总大小,单位是字节
printf("%d",sizeof(a[0])) 打印出来4
int c=sizeof(a)/sizeiof(a[0])
printf("%d",sizeof(c)) 打印出来为10→计算数组元素的个数