解码C语言运算符

news/2025/9/17 20:30:10/文章来源:https://www.cnblogs.com/YouEmbedded/p/19097407

算术运算符

运算符 描述 示例 结果
+ 加法 5 + 3 8
- 减法 5 - 3 2
* 乘法 5 * 3 15
/ 除法 5 / 2 2
% 取模 5 % 2 1
++ 自增 a++ a+1
-- 自减 a-- a-1

注意:

  • 整数除法会截断小数部分
  • 取模运算只能用于整数类型

关系运算符

运算符 描述 示例 结果
== 等于 5 == 3 0
!= 不等于 5 != 3 1
> 大于 5 > 3 1
< 小于 5 < 3 0
>= 大于等于 5 >= 3 1
<= 小于等于 5 <= 3 0

C语言中前缀与后缀自增自减运算符的区别

基本概念

前缀形式(先增减)
  • ++variable:先自增,后使用
  • --variable:先自减,后使用
后缀形式(后增减)
  • variable++:先使用,后自增
  • variable--:先使用,后自减

区别对比表

特性 前缀形式 (++a, --a) 后缀形式 (a++, a--)
执行顺序 先增减,后使用 先使用,后增减
返回值 返回增减后的值 返回增减前的值
性能 通常更高效 可能稍低(需要临时变量)
常见用途 需要立即使用新值 需要先使用原值

代码示例

示例:基本区别
#include <stdio.h>int main() {int a = 5, b = 5;int x, y;// 前缀:先自增,后赋值x = ++a;printf("前缀: a = %d, x = %d\n", a, x); // a=6, x=6// 后缀:先赋值,后自增y = b++;printf("后缀: b = %d, y = %d\n", b, y); // b=6, y=5return 0;
}

逻辑运算符

运算符 描述 示例 结果
&& 逻辑与(全真为真,有假为假,若第一个为假则第二个不判断(短路) (5>3) && (2>1) 1
|| 逻辑或(全假为假,有真为真,若第一个为真则第二个不判断(短路)) (5>3) || (2<1) 1
! 逻辑非 !(5>3) 0

位运算符(以二进制形式进行位或)

运算符 描述 示例 结果
& 按位与 5 & 3 1
| 按位或 5 | 3 7
^ 按位异或 5 ^ 3 6
~ 按位取反 ~5 -6
<< 左移(移出丢弃,空出补0) 5 << 1 10
>> 右移(移出丢弃,空出补符号位) 5 >> 1 2

赋值运算符

运算符 描述 等价于
= 简单赋值 a = 5
+= 加后赋值 a += 5a = a + 5
-= 减后赋值 a -= 5a = a - 5
*= 乘后赋值 a *= 5a = a * 5
/= 除后赋值 a /= 5a = a / 5
%= 取模后赋值 a %= 5a = a % 5
&= 按位与后赋值 a &= 5a = a & 5
` =` 按位或后赋值
^= 按位异或后赋值 a ^= 5a = a ^ 5
<<= 左移后赋值 a <<= 5a = a << 5
>>= 右移后赋值 a >>= 5a = a >> 5

其他运算符

运算符 描述 示例
sizeof() 返回变量或类型的大小 sizeof(int)
& 取地址运算符 &a
* 指针运算符 *ptr
?: 条件运算符 a > b ? a : b
, 逗号运算符 a = (b=3, b+2)a=5
[] 下标运算符 arr[5]
-> 结构体指针成员访问 ptr->member
. 结构体成员访问 struct.member

运算符优先级

从高到低排列:

  1. () [] -> .
  2. ! ~ ++ -- + - * & (type) sizeof
  3. * / %
  4. + -
  5. << >>
  6. < <= > >=
  7. == !=
  8. &
  9. ^
  10. |
  11. &&
  12. ||
  13. ?:
  14. = += -= *= /= %= &= ^= |= <<= >>=
  15. ,

代码示例

#include <stdio.h>#include <stdio.h>int main() {// 算术运算符int a = 10, b = 3;printf("算术运算:\n");printf("%d + %d = %d\n", a, b, a + b);  // 10 + 3 = 13printf("%d / %d = %d\n", a, b, a / b);  // 10 / 3 = 3(整数除法,小数部分被截断)// 关系运算符printf("\n关系运算:\n");printf("%d > %d = %d\n", a, b, a > b);  // 10 > 3 = 1(真)// 逻辑运算符printf("\n逻辑运算:\n");printf("(%d>%d) && (%d<%d) = %d\n", a, b, a, b, (a>b) && (a<b));  // (10>3) && (10<3) = 0(真 && 假 = 假)// 位运算printf("\n位运算:\n");printf("%d & %d = %d\n", a, b, a & b);  // 10 & 3 = 2// 10的二进制: 1010, 3的二进制: 0011// 按位与结果: 0010 = 2// 赋值运算int c = a;      // c = 10c += 5;         // c = 10 + 5 = 15printf("\n赋值运算: c = %d\n", c);  // 输出: c = 15// 条件运算符int max = (a > b) ? a : b;  // 10 > 3 为真,所以 max = a = 10printf("最大值: %d\n", max);  // 输出: 最大值: 10return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/906810.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

完整教程:一篇读懂Pormise!!【前端ES6】

完整教程:一篇读懂Pormise!!【前端ES6】2025-09-17 20:13 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: blo…

93. 递归实现组合型枚举

93. 递归实现组合型枚举 if (sum + n - u < m) return; 如果当前记录的数据 加上 后面的所有可以被选的数据 时无法达到要求时终止 state记录了哪些数据被选,哪些没被选的 state | 1 << u 选择当前的数据,比如0101 -> 10101 #include <iostream> using n…

Sort方法学习(伪代码记录)

Sort 方法总结 selectionSort(vector& a) 核心思想:选择最大/小的数移到最前/后 // 1. 计算数组长度// 2. 控制已排序部分的边界 for(i=0; i<n; i++){// 3. 在未排序部分(j到末尾)中寻找真正的maxfor(j=i+1, j<n; j++) find(max);// 3. 将最大的数放至数组头swap(…

深入解析:【每日一问】运算放大器与比较器有什么区别?

深入解析:【每日一问】运算放大器与比较器有什么区别?pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", mon…

9.17支配对问题专题总结

概括 每次查询一定范围内的点组成的点对中的最优值,而通过一些分析去减少有用点对的数量,这样子的有用点对称为 支配对 T1策略是将 \(a_i\) 相同的序列取出来单独考虑 固定 \(b_i<b_j,i<j\) 然后考虑能找出来一个序列 \(i,j1,j2,j3...\) 但是发现选 \(i,j2\) 不如选 \(…

Xじゃないか

並行じゃないか いや 通信じゃないか わかりあえなくて 愛じゃないか ——絡みなんです それがAIなんです。\[\newcommand{\c}{\mathcal} \newcommand{\eps}{\epsilon} \newcommand{\co}[2]{{\color{#1}{#2}}} \]L…

开源收银体系_大型收银系统源码_OctShop

开源收银体系_大型收银系统源码_OctShoppre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Mo…

完整教程:热力图是什么?三分钟学会热力图数据分析怎么做!

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

机器视觉检测中光源的作用以及分类 - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

XXL-JOB(2)

XXL-JOB(2)1、入门和集成<!-- xxl-job-core --><dependency><groupId>com.xuxueli</groupId><artifactId>xxl-job-core</artifactId><version>2.5.0</version></dependency> 搭建控制台 XXL-JOB-ADMIN jar 本地启动,…

P9753 [CSP-S 2023] 消消乐

前置算法动态规划 hash哈希题目大意 给定一个字符串,可以将相邻两个相同的字符删除,然后合并成一个新序列。 例如:abba,可以先将两个 b 删除,然后合并成 aa,最后删除 a。 求出有多少个字串,最后可以将其变为空串,我们称之为合法的字串。 思路 看到数据范围,只能使用 \…

9.16 CSP-S模拟22 改题记录

HZOJ 写在前面 连着两天吃了两坨。。。好吧,那就一坨一坨地消化一下吧。话说如果这真是S组难度那我不真就废了?这场真是T1猜结论题,T2就来坨大的,不知道啥是二分图暴力都不会打。T3反正就是我是大春竹。T4上演忘记结论创造结论,然鹅实际上还是不会写。没有文件输入输,没有…

AT_agc058_b [AGC058B] Adjacent Chmax

转化为对某个区间染色,然后设 \(f_{i, j}\) 为前 \(i\) 种颜色染了 \([1, j]\) 的方案数,简单转移即可。

Jenkins CVE-2018-1000600漏洞利用与SSRF攻击分析

本文详细分析了Jenkins GitHub插件CVE-2018-1000600漏洞的利用方法,通过CSRF漏洞和权限缺失实现凭证窃取与完全响应SSRF攻击,包含PoC代码和影响版本范围说明。Jenkins - CVE-2018-1000600 PoC 来源博客文章 https://blog.orange.tw/2019/01/hacking-jenkins-part-1-play-with…

NOIP 集训日记(学术)

workwork学术版。 9.9 P4117 [Ynoi2018] 五彩斑斓的世界 分块神题。 拿到题以后发现不能直接做,然后你就开始观察。 设区间最大值为 \(maxn\) ,查询的数为 \(x\) 一个显然的性质:把所有小于等于 \(x\) 的数加上 \(x\) ,然后区间减 \(x\) ,得到的结果不变。然后我们思考一下…

linux中mysql如何远程连接

linux中mysql如何远程连接 两个步骤: 第一:让root允许远程登录 update user set host = % where user = root;第二:给予root用户最大数据库权限 grant all privileges on *.* to root@% identified by 123456; flush privileges;实操: [root@bogon ~]# mysql -uroot -p1234…

详细介绍:Python:OpenCV 教程——从传统视觉到深度学习:YOLOv8 与 OpenCV DNN 模块协同实现工业缺陷检测

详细介绍:Python:OpenCV 教程——从传统视觉到深度学习:YOLOv8 与 OpenCV DNN 模块协同实现工业缺陷检测pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", …

深入解析:PYcharm——pyqt音乐播放器

深入解析:PYcharm——pyqt音乐播放器pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !important…

威联通NAS如何导入本地docker镜像

威联通NAS如何导入本地docker镜像 【前言】:有一段时间没有维护NAS docker了,笔记本电脑坏了更换后重新配置开发环境,也就没去折腾这些,有些命令忘记了,重新整理一下,输出驱动输入,还可能帮助到。欢迎大家一起友好讨论, 祝好: 【摘要】:本文主要围绕威联通NAS如何导入…