1.算术操作符
+、-、*、/、%
int a=9/2
printf("%d\n",a);
return 0;
//输出结果为4(商4余1)
int a=9%2
printf("%d\n",a);
return 0;
//输出结果为1
//% 取模(取余数)
2.移位操作符
<<左移操作符 二进制位 末尾补0
>>右移操作符
3.赋值操作符
=、+=、-=、*=、/=、&=、^=、|=、>>=、<<=
e.g. ① a=a+5 可写成 a+=5
② a=a-3 可写成a-=5
4.单目操作符
! 逻辑反操作(0为假,非0为真)
a=0,本身为假,输出为1(为真) a≠0,本身为真,输出为0(为假)
使用方式: if (a) ....... if(!a) ......
- 负值
+ 正值
& 取地址
sizeof 操作数的类型长度(以字节为单位)
printf("%d\n",sizeof(int));
printf("%d\n",sizeof a);
求变量a时能省略,说明是操作符sizeof不是函数;
计算类型大小,如int时,不能省略括号
语法支持,但通常不会省略括号
~ 对一个数的二进制按位取反
按二进制位取法,符号位不变 把所有二进制里面的数字,1变0,0变1
负数的计算:补码=反码+1 最高位(最左边的)为1,为负数
正整数,原码反码补码相同
-- 前置、后置-- 先++再使用
++ 前置、后置++ 先使用再++
int a=10;
int b=a++;
printf("%d\n",b);
printf("%d\n",a);
//输出结果为 10;11
int a=10;
int b=++a;
printf("%d\n",b);
printf("%d\n",a);
//输出结果为 11;11
* 间接访问操作符(解引用操作符)
() 强制类型转换
5.逻辑操作符
&& 并且 ||或者
&&: 若ab都非0(都为真),a&&b=1
若ab有一个等于0(为假),a&&b=0
||:都为真或一方为真,结果为1
都为假,结果为0
6.条件操作符
exp1?exp2:exp3
exp1 成立,计算exp2,整个表达式的结果是:exp2的结果
exp1 不成立,exp2不计算,计算exp3,整个表达式的结果是:exp3的结果
int a=0;
int b=3;
int max=0;
if(a>b)
max=a;
else
max=b;
可转化为
max=a>b?a:b;