【C语言初阶】什么操作符你还没搞懂?试试这篇文章让你彻底理解各种操作符!

简介: 【C语言初阶】什么操作符你还没搞懂?试试这篇文章让你彻底理解各种操作符!

一、 算术操作符:

1.1 加减乘除

+ - * %/ 除法

  1. 整数除法(除号的两端都是整数)
  2. 浮点数除法(除号的两端只要有一个小数就执行小数除法)

在除法中,除数不可以为0

当除法的俩个操作数至少有一个为负数时

x/y x%y
  负÷负  例 x = -22, y=-5  4 -2
  5 3
  负÷正  例 x = -22, y = 5 -4  -2
  -5  3
  正÷负  例 x = -22, y = 5 -4  2
  -5  -3

% 模除

  • 取模操作符的俩个操作数必须是整数 返回的是整除之后的余数。

二、 移位操作符:

<<  左移操作符
>>  右移操作符

🔥 注:移位操作符的操作数只能是整数。

这里移位操作符指的是 —— 移动二进制

计算机 —— 能处理的是二进制的信息

1 和 0

2.1 计算机中整数的存储

整数在内存中的储存形式是补码

一个整数的二进制的表示有3种:

  • 原码
  • 反码
  • 补码

-1:的表示 负数的存储
10000001 原码 左边的1表示符号位负 右边就是正常二进制
11111110 反码 符号位不变,其他按位求反
11111111 补码 反码+1
正整数: 原码、反码、补码相同

2.2 >> 右移操作符

右移:

算术右移(右边丢弃,左边补原来的符号位)

逻辑右移(右边丢弃,左边直接补0)

在c语言中没有明确规定到底是算术右移还是逻辑右移,一般编辑器上采用的

算术右移

2.3 << 左移操作符

移位规则:

左边抛弃、右边补0

位操作符:他们的操作数必须是整数

在这里插入代码片

2.4 &按位与

& //按位与
& -- 对应二进制位有0则为0,两个同时为1,才是1
//00000000000000000000000000000011
//11111111111111111111111111111011
//00000000000000000000000000000011 – 与运算后

2.5 |按位或

| - 
按(2进制)位或 - 对应的二进制位有1则为1,两个同时为0才是0
  //00000000000000000000000000000011
  //11111111111111111111111111111011
  //11111111111111111111111111111011 – 按位或运算后

2.6 ^ 按位异或

^ - 
按二进制位异或 -对应的二进制位相同为0,相异为1
//00000000000000000000000000000011
//11111111111111111111111111111011
//11111111111111111111111111111000 – 按位异或后

^ 按位异或应用示例:

//交换2个整型变量

//不能创建临时变量(第三个变量),实现两个整数的交换

int main()
{
  int a = 3;
  int b = 5;
  printf("交换前:a=%d b=%d\n", a, b);
  /*int tmp = a;
  a = b;
  b = tmp;*/
  /*a = a + b;
  b = a - b;
  a = a - b;*/
  a = a ^ b;  // 
  b = a ^ b;  //在这里 b = (a^b)^b所以 = a
  a = a ^ b;  //在这里 a = (a^b)^a所以 = b
  printf("交换后:a=%d b=%d\n", a, b);
  return 0;
}
int a = 3;
int b = 5;
a^a = 0;
a^0 = a;
//异或是支持交换律的
a^b^a = 5
a^a^b = 5

三、 复合赋值符 :

+=
-=
*=
/=
%=
>>=
<<=
&=
|=
^=

int x = 10;

x = x+10;

x += 10;//复合赋值

//其他运算符一样的道理。这样写更加简洁。

二、单目操作符:

单目操作符就只有一个操作数,例如下面这些就是双目操作符

  • a+b – 双目操作符
  • a&b – 双目操作符
  • 3^5 – 双目操作符
    这些就是双目运算符!大家只要记住双目操作符有俩个操作符,单目只有一个就好了!
表示符号 符号含义
逻辑反操作
- 负值
+ 正值
& 取地址
sizeof 操作数的类型长度(以字节为单位)
~ 对一个数的二进制按位取反
- -a 前置减减
a- - 后置减减
++a 前置加加
* 间接访问操作符(解引用操作符)
(类型) 强制类型转换
! 逻辑反操作
a++ 后置加加
int flag = 0;
  if (flag == 0)
  {
    printf("hehe\n");
  }
  if (!flag)//flag 为假 打印hehe
  {
    printf("hehe\n");
  }

~ 对一个数的二进制按位取反

sizeof 操作数的类型长度(以字节为单位)

sizeof 不是函数是操作符

sizeof 计算的是类型创建变量的大小,单位是字节

& 取地址

  • 间接访问操作符(解引用操作符)
int main()
{
  int a = 10;
  //pa是指针变量
  int* pa = &a;//&-取地址操作符-取出a的地址
  *pa = 20;//解引用操作符(间接访问操作符)-单目操作符-通用pa中存放的地址,找到指向的空间(内容)
  int c = *pa;
  return 0;
}

三、 关系操作符:

大于 < 小于>
!= 不等于 等于 =
大于等于 <= >= 小于等于
!= 不等于 == 等于

四、 逻辑操作符;

&& 逻辑与

  • && || ! - 计算结果是真,使用1表示
    && 操作符,左边为假,右边就不计算了

|| 逻辑或

|| 操作符,左边为真,右边就不在计算

📝全篇总结

✅ 归纳:

好了以上就是关于C语言中全部 操作符的讲解和解释啦,大家可以自己去练习一下呢!尤其是 异或操作的运算哦!

  算术操作符

  逻辑操作符

  位移操作符

  单目操作符

  赋值操作符

看到这里了还不给博主扣个:
⛳️ 点赞☀️收藏 ⭐️ 关注

💛 💙 💜 ❤️ 💚💓 💗 💕 💞 💘 💖

拜托拜托这个真的很重要!

你们的点赞就是博主更新最大的动力!

有问题可以评论或者私信呢秒回哦。

目录
相关文章
|
2月前
|
存储 C语言 索引
【C语言篇】操作符详解(下篇)
如果某个操作数的类型在上⾯这个列表中排名靠后,那么⾸先要转换为另外⼀个操作数的类型后执⾏运算。
|
2月前
|
程序员 编译器 C语言
【C语言篇】操作符详解(上篇)
这是合法表达式,不会报错,但是通常达不到想要的结果, 即不是保证变量 j 的值在 i 和 k 之间。因为关系运算符是从左到右计算,所以实际执⾏的是下⾯的表达式。
|
21天前
|
存储 C语言
【C语言基础】一篇文章搞懂指针的基本使用
本文介绍了指针的概念及其在编程中的应用。指针本质上是内存地址,通过指针变量存储并间接访问内存中的值。定义指针变量的基本格式为 `基类型 *指针变量名`。取地址操作符`&`用于获取变量地址,取值操作符`*`用于获取地址对应的数据。指针的应用场景包括传递变量地址以实现在函数间修改值,以及通过对指针进行偏移来访问数组元素等。此外,还介绍了如何使用`malloc`动态申请堆内存,并需手动释放。
|
2月前
|
存储 程序员 C语言
揭秘C语言:这些核心知识你掌握了吗?一篇文章带你突破编程基础,开启高效编码之旅!
【8月更文挑战第22天】C语言作为编程基石,以简洁高效著称,历经数十年仍备受欢迎。本文通过梳理C语言的核心概念,帮助读者深入理解并提升技能。适合各水平读者。基础语法从`main`函数开始,如示例中的“Hello, World!”程序所示。C语言强调头文件包含与语句结尾的分号。变量和数据类型丰富多样,如`int`、`float`、`char`等,合理选择可优化内存使用和性能。指针用于间接访问内存,是C语言的关键特性。控制结构如循环和分支使程序逻辑更灵活。函数支持代码复用与模块化。深入学习还需掌握预处理指令、文件操作等高级特性。通过系统学习与实践,你将能更熟练地使用C语言,构建高效稳定的应用。
40 4
|
2月前
|
C语言
C语言操作符(补充+面试)
C语言操作符(补充+面试)
39 6
|
2月前
|
存储 编译器 C语言
十一:《初学C语言》— 操作符详解(上)
【8月更文挑战第12天】本篇文章讲解了二进制与非二进制的转换;原码反码和补码;移位操作符及位操作符,并附上多个教学代码及代码练习示例
50 0
十一:《初学C语言》—  操作符详解(上)
|
3月前
|
C语言
五:《初学C语言》— 操作符
本篇文章主要讲解了关系操作符和逻辑操作符并附上了多个代码示例
37 1
五:《初学C语言》—  操作符
|
2月前
|
C语言
【C初阶——指针5】鹏哥C语言系列文章,基本语法知识全面讲解——指针(5)
【C初阶——指针5】鹏哥C语言系列文章,基本语法知识全面讲解——指针(5)
|
2月前
|
C语言
【C初阶——指针4】鹏哥C语言系列文章,基本语法知识全面讲解——指针(4)
【C初阶——指针4】鹏哥C语言系列文章,基本语法知识全面讲解——指针(4)
|
2月前
|
存储 编译器 C语言
【C初阶——指针3】鹏哥C语言系列文章,基本语法知识全面讲解——指针(3)
【C初阶——指针3】鹏哥C语言系列文章,基本语法知识全面讲解——指针(3)
下一篇
无影云桌面