提示:以下是本篇文章正文内容,下面案例可供参考
一、算术运算符
1.除法(/)
两端都为整数时,结果只保留整数部分,不保留小数部分
int a=6/5; 结果为1
两端有一端为浮点数时,结果才保留小数部分
float a=6/5.0; 结果为1.2
2.取模(%)
两端都得是整数类型
二、移位操作符
1.左移(<<)
左边抛弃,右边补0
int a=1;
int b= a << 1; a=1 b=2
2.右移(>>)
①算术右移
左边补符号位,右边抛弃
int a=2;
int b=a>>1; a=2 b=1
②逻辑右移
左边补0,右边抛弃
三、位操作符
1.按位与(&)
同1为1,否则为0
int a=1;
int b=3;
int c=a&b; 结果:c=1
2.按位或(|)
有1得1,同0得0
int c=a | b; 结果:c=3
3.按位异或(^)
相同得0,不相同得1
int c=a^b; 结果:c=2
4.按位取反(~)单目操作符
每一位进行取反,包括符号位
int a=-1;
int b=~a; 结果:0
笔试题
//交换两个int的变量,不使用第三个变量 a=5,b=3 a=3,b=5
int a = 5;
int b = 3;
a = a ^ b;
b = a ^ b;
a = a ^ b;
printf("%d\n",a);
printf("%d\n",b);
四、单目操作符
1.取反(!)
if(flag){
flag为真时的操作
}
if(!flag){
flag为假时的操作
}
2.sizeof()
计算所占空间大小,单位字节
int a=10;
sizeof(a); == sizeof a; 变量名时,有两种写法
sizeof(int); 类型名时,只有这一种写法
sizeof()括号中的表达式是不参与运算的
short s=5;
int a=10;
printf("%d\n",sizeof(s=a+2)); 结果:2
printf("%d\n",s); 结果:5
五、逻辑操作符
1.逻辑与(&&)
左边为假,右边不再计算
2.逻辑或(||)
左边为真,右边不再计算
笔试题
六、三目操作符(: ;)
条件表达式?真:假;
七、逗号表达式
从左往右依次计算,整个表达式的结果是最后一个表达式的结果
int a=1;
int b=2;
int c = (a=a + b, b=a - b, b);
八、整型提升
C语言的整型算术运算总是以整型类型的精度进行计算的。字符型(char)和短整型(short)在使用之前,被转化为整型类型(int)
规则:按照符号位来提升的