大家好,我是十一,今天带大家来了解C语言中的各种操作符。
目录
1.算术操作符
算术操作符有:加(+)减(-)乘(*)除(/)
需要注意的是:
对于 / 操作符如果两个操作数都为整数,执行整数除法。而只要有浮点数执行的就是浮点数除法。
模(余)操作符(%)
%运算符 :a % b a除以b所得到的余数(a和b必须是整数)
除了 % 操作符之外,其他的几个操作符可以作用于整数和浮点数。
2.移位操作符
左移操作符(<<)
移位规则:左边抛弃,右边补0(移动的是二进制位)
int a = 10;
a << 2;
右移操作符(>>)
移位规则:分为2种:
1.算数右移(左边用0填充,右边丢弃)
2.逻辑右移(左边用原该值的符号位填充,右边丢弃)
int a = -1;
a >> 1;
3.位操作符
位操作符有:
& :按位与
| :按位或
^ :按位异或
位运算符是针对二进制计算的
他们的操作数必须是整数。
按位与
按位与的运算规则是:对应的二进制位上有0则为0,2个同时为1则为1。
int a = 3;
int b = -5;
int c = a & b;
printf("%d", c);//C的结果为:3
按位或
按位或的运算规则是:对应的二进制位上有1则为1,2个同时为0则为0
int a = 3;
int b = -5;
int c = a | b;
printf("%d", c);// C的结果为:-5
按位异或
按位异或的运算规则是:对应的二进制位上相同为0,相异为1
int a = 3;
int b = -5;
int c = a ^ b;
printf("%d", c);// C的结果为:-8
4.赋值操作符
+= 加赋值
-= 减赋值
*= 乘赋值
/= 除赋值
%= 求余赋值
&= 按位与赋值
|= 按位或赋值
^= 按位异或赋值(先操作,再进行赋值)
5.单目操作符
! 逻辑反操作- 负值+ 正值& 取地址sizeof 操作数的类型长度(以字节为单位)~ 对一个数的二进制按位取反-- 前置、后置--++ 前置、后置++* 间接访问操作符(解引用操作符)
逻辑反操作
int a = 3;
if (!a)//让判断为假,if语句不会执行
{
printf("%d", a);
}
int a = 0;
if (!a)//让判断为真,if语句执行
{
printf("%d", a);
}
取地址/解引用操作符
取地址就是:取出一个变量/数组/数组中某一个元素等, 在内存中的地址
解引用操作:通过地址找到原变量
int a = 10;
int* pa = &a;//取出地址放到pa变量里
*pa = 20;//通过地址修改原变量
char ch = 'a';
char* pb = &ch;
*pb = 'b';
int arr[10] = { 0 };
int* pc = arr;
int* pd = &arr[0];
*pd = 1;
printf("%d %c %d", a, ch, arr[0]);//输出的结果是20,b,1
sizeof
sizeof:可以求变量(类型)所占空间的大小。
int a = 10;
printf("%d\n", sizeof(a));//输出结果为4
printf("%d\n", sizeof(int));//输出结果为4
取反操作符
(~)操作符:对一个数的补码进行按位取反
int a = 0;
printf("%d", ~a);//输出结果为-1
自增和自减
自增和自减分为后置和前置
后置:先使用,使用完后再进行自增/自减
int a = 10;
int b = a++;
printf("%d", a);//输出的结果为11
printf("%d", b);//输出的结果为10
前置:先进行自增/自减后再使用
int a = 10;
int b = ++a;
printf("%d", a);//输出的结果为11
printf("%d", b);//输出的结果为11
6.关系操作符
> 大于>= 大于等于< 小于<= 小于等于!= 不等于== 等于注意:等于操作符为"==","="为赋值操作符
7.逻辑操作符
&& 逻辑与(并且)|| 逻辑或(或者)
逻辑与/逻辑或只关注真和假
逻辑与
逻辑或
8.条件操作符
int a = 10;
int b = 20;
int m = 0;
if (a > b)
m = a;
else
m = b;
//也可以写成
m = (a > b ? a : b);//条件操作符
今天的分享就到这里啦!希望这篇文章能给大家带来一些收获^_^