算数操作符(双目操作符)
+、-、*、/、%(取模)
移位操作符
>>右移位操作符(移动二进制位)000001—000010
<<左移位操作符
位操作符
&按位与
|按位或
^按位异或
赋值操作符
=、+=、-=、*=、/=、&=、|=、^=、>>=、<<=
a = a + 5
a +=5
//一个意思,表示a的值加5
单目操作符(后面有一个操作数)
!逻辑反操作
int a = 0;//计算机中0为假,非0为真
printf(“%d\n”,a);//输出结果为1
~按(二进制)位取反:把所有二进制位中的0变成1,1变成0
整数在内存中存储的是补码,整数的二进制存储方式分为三种:原码、反码、补码。负数的反码和补码要根据原码计算,正数的原码、反码、补码相同。
原码、反码、补码均由符号位+有效位组成,其中符号位0表示正数,1表示负数
-1原码:1(符号位)00000000000000000000000000000001
-1反码;1(符号位不变)11111111111111111111111111111110(其他取反)
-1补码:111111111111111111111111111111111(反码的基础上+1)
++:数据+1
++前置:先++,在使用
int a = 10 ;
int b = ++a;//前置++,先++,在使用
printf ("%d\n",b);
printf ("%d\n",a);
return 0;//输出结果b=11、a=11
++后置:先使用,在++
int a = 10 ;
int b = a++;//后置++,先使用,在++
printf ("%d\n",b);
printf ("%d\n",a);
return 0;//输出结果b=10、a=11
(类型)强制类型转换
int a =(int) 3.14;//(强制转换成整型)
printf("%d\n",a);
return 0;//3.14 float和整型不匹配,(int)强制转换成整型
关系操作符
> 大于
>= 大于等于
< 小于
<= 小于等于
!= 测试不相等
== 测试相等
逻辑操作符
&&逻辑与:全真为真,一假为假
int a = 1;
int b = 0;
int c = a && b;//a且b,全真为真,反之为假
printf("%d\n",c);//输出结果为0
||逻辑或:一真为真 ,全假为假
int a = 1;
int b = 0;
int c = a || b;//a且b,一真为真,反之为假
printf("%d\n",c);//输出结果为1
条件操作符
exp1 ? exp2 : exp3(三目操作符)
exp1成立,计算exp2,表达结构为exp2;exp1不成立,计算exp3,表达结构为exp3
int a =0;
int b =3;
int max = 0;
max = a>b ? a : b; //结果为3
逗号表达式
exp1,exp2,exp3,……,expN
常见关键字
auto(局部变量前用auto修饰)、extern(声明外部符号)、register(寄存器关键字)……
define、include不是关键字,预处理指令