1、操作符详解
C语言的操作符分为以下10种:
1.1算数操作符
1.+ - * / 操作符可以作用于整数和浮点数;
2.%操作符只能用于两个整数之间,返回的是整除之后的余数;
3./ 操作符则是根据两操作数类型进行除法,如两个操作数是整型,执行整数除法,如果两数为浮
点型,则执行浮点数除法。
例:
#include <stdio.h>
int main()
{
int a = 5 / 2;
printf("a=%d\n", a);
return 0;
}
结果:
#include <stdio.h>
int main()
{
double a = 5/ 2.0;
printf("a=%lf\n", a);
return 0;
}
结果:
int main()
{
int a = 5% 2;
printf("a=%d\n", a);
return 0;
}
结果
1.2移位操作符
<< 左移操作符 >> 右移操作符
1.2.1右移操作符:
1.2.1.1算数右移:左边用原该值的符号位填充,右边丢弃
int main()
{
int a = -1;
//>>右移操作符,移动的是二进制
int b = a >> 1;
printf("%d\n", b);
return 0;
}
结果
1.2.1.2逻辑右移:右边丢弃,左边补0
1.2.2左移操作符
左边抛弃、右边补0
int main()
{
int a = 5;
int b = a << 1;
printf("%d\n", b);
return 0;
}
逻辑
1.3位操作符
&:按位与(有0为0)
int main()
{
//&-按2进制位与
int a = 3;//000000000000000000000000011
int b = 5;//000000000000000000000000101
///000000000000000000000000001
int c = a & b;
printf("%d\n", c);
return 0;
}
结果:
| :按位或(有1为1)
int main()
{
//|-按2进制位或
int a = 3;//000000000000000000000000011
int b = 5;//000000000000000000000000101
///000000000000000000000000111
int c = a | b;
printf("%d\n", c);
return 0;
}
结果
^:按位异或(相同为0,不同为1)
int main()
{
//^-按2进制位异或
int a = 3;//000000000000000000000000011
int b = 5;//000000000000000000000000101
///000000000000000000000000110
int c = a^b;
printf("%d\n", c);
return 0;
}
结果:
1.4、赋值操作符
可将未定义变量进行赋值,也可以将之前的改掉。
int x = 0;
x = 20;
复合操作符:
+= | *= | %= | <<= | |= |
-= | /= | >>= | &= | ^= |
1.5单目操作符
! 逻辑反操作
- 负值
+ 正值
& 取地址
sizeof 操作数的类型长度(以字节为单位)
~ 对一个数的二进制按位取反
-- 前置、后置--
++ 前置、后置++
* 间接访问操作符(解引用操作符)