c语言常见操作符及操作符优先级
目录
- 概述
- 1. 算术操作符:
- 2. 关系操作符:
- 3. 逻辑操作符:
- 4. 位操作符:
- *常见操作符优先级*
C语言中有多种操作符,用于执行不同的操作。下面是一些常见的C语言操作符以及示例代码:
1. 算术操作符:
- 加法操作符(+):用于将两个值相加。
int a = 5;
int b = 3;
int result = a + b; // result的值为8
- 减法操作符(-):用于将第一个值减去第二个值。
int a = 5;
int b = 3;
int result = a - b; // result的值为2
- 乘法操作符(*):用于两个值相乘。
int a = 5;
int b = 3;
int result = a * b; // result的值为15
- 除法操作符(/):用于将第一个值除以第二个值。
int a = 10;
int b = 2;
int result = a / b; // result的值为5
- 取余操作符(%):用于求两个值相除后的余数。
int a = 10;
int b = 3;
int result = a % b; // result的值为1
2. 关系操作符:
- 相等操作符(==):用于判断两个值是否相等,如果相等则返回1,否则返回0。
int a = 5;
int b = 3;
int result = (a == b); // result的值为0
- 不相等操作符(!=):用于判断两个值是否不相等,如果不相等则返回1,否则返回0。
int a = 5;
int b = 3;
int result = (a != b); // result的值为1
- 大于操作符(>):用于判断第一个值是否大于第二个值,如果是则返回1,否则返回0。
int a = 5;
int b = 3;
int result = (a > b); // result的值为1
- 小于操作符(<):用于判断第一个值是否小于第二个值,如果是则返回1,否则返回0。
int a = 5;
int b = 3;
int result = (a < b); // result的值为0
- 大于等于操作符(>=):用于判断第一个值是否大于等于第二个值,如果是则返回1,否则返回0。
int a = 5;
int b = 3;
int result = (a >= b); // result的值为1
- 小于等于操作符(<=):用于判断第一个值是否小于等于第二个值,如果是则返回1,否则返回0。
int a = 5;
int b = 3;
int result = (a <= b); // result的值为0
3. 逻辑操作符:
- 逻辑与操作符(&&):用于判断两个条件是否同时成立,如果是则返回1,否则返回0。
int a = 5;
int b = 3;
int result = (a > 0 && b > 0); // result的值为1
- 逻辑或操作符(||):用于判断两个条件是否至少有一个成立,如果是则返回1,否则返回0。
int a = 5;
int b = 3;
int result = (a > 0 || b > 0); // result的值为1
- 逻辑非操作符(!):用于取反一个条件的值,如果条件为真,则返回假(0),如果条件为假,则返回真(1)。
int a = 5;
int result = !(a > 0); // result的值为0
4. 位操作符:
- 按位与操作符(&):对两个值进行按位与操作。
unsigned int a = 5; // 二进制表示为:0000 0101
unsigned int b = 3; // 二进制表示为:0000 0011
unsigned int result = a & b; // result的值为1,二进制表示为:0000 0001
- 按位或操作符(|):对两个值进行按位或操作。
unsigned int a = 5; // 二进制表示为:0000 0101
unsigned int b = 3; // 二进制表示为:0000 0011
unsigned int result = a | b; // result的值为7,二进制表示为:0000 0111
- 按位异或操作符(^):对两个值进行按位异或操作。
unsigned int a = 5; // 二进制表示为:0000 0101
unsigned int b = 3; // 二进制表示为:0000 0011
unsigned int result = a ^ b; // result的值为6,二进制表示为:0000 0110
- 左移操作符(<<):将一个值左移指定的位数。
unsigned int a = 5; // 二进制表示为:0000 0101
unsigned int result = a << 2; // result的值为20,二进制表示为:0001 0100
- 右移操作符(>>):将一个值右移指定的位数。
unsigned int a = 20; // 二进制表示为:0001 0100
unsigned int result = a >> 2; // result的值为5,二进制表示为:0000 0101
以上是一些常见的C语言操作符及其示例代码,除此之外C语言中还有其他类型的操作符。
常见操作符优先级
C语言中常见操作符的优先级从高到低如下:
-
一元运算符:
++ (自增), – (自减), + (正号), - (负号), ! (逻辑非), ~ (按位取反), * (指针解引用), & (取地址), sizeof (获取变量类型大小)
-
乘法/除法/取余:
*(乘法), / (除法), % (取余)
- 加法/减法:
+(加法), - (减法)
- 移位运算符:
<< (左移), >> (右移)
- 关系运算符:
< (小于), > (大于), <= (小于等于), >= (大于等于)
- 相等性运算符:
== (等于), != (不等于)
- 位与运算符:
& (按位与)
- 位异或运算符:
^ (按位异或)
- 位或运算符:
| (按位或)
- 逻辑与运算符:
&& (逻辑与)
- 逻辑或运算符:
|| (逻辑或)
- 三元条件运算符:
? : (条件运算符)
-
赋值运算符:
= (赋值), +=, -=, *=, /=, %=, <<=, >>=, &=, ^=, |=
注意,这只是一个常见操作符的优先级逐级排序,具体使用时还需要根据具体运算表达式进行适当的括号添加,以确保运算顺序符合预期。
相关文章:
c语言常见操作符及操作符优先级
目录 概述1. 算术操作符:2. 关系操作符:3. 逻辑操作符:4. 位操作符: *常见操作符优先级* 概述 C语言中有多种操作符,用于执行不同的操作。下面是一些常见的C语言操作符以及示例代码: 1. 算术操作符&…...

IO进程线程:通信
1.定义互斥锁 #include<myhead.h>int num520;//临界资源//1.创建一个互斥锁变量 pthread_mutex_t mutex;//定义任务1函数 void *task1(void *arg) {printf("11111111111111\n");//3.获取锁资源pthread_mutex_lock(&mutex);num1314;sleep(3);pr…...

神经网络系列---常用梯度下降算法
文章目录 常用梯度下降算法随机梯度下降(Stochastic Gradient Descent,SGD):随机梯度下降数学公式:代码演示 批量梯度下降(Batch Gradient Descent)批量梯度下降数学公式:代码演示 小…...
Flink 的历史版本特性介绍(一)
如果你还不了解 Flink 是什么,可以查看我之前的介绍文章:Flink 介绍 如果你想跟着我一起学习 flink,欢迎查看订阅专栏:Flink 专栏 这篇文章列举了 Flink 每次发布的版本中的重要特性,从中可以看出 Flink 是如何一步一步发展到今天的。 Flink 的前身是 Stratosphere 项目…...

【尚硅谷】MybatisPlus 学习笔记(下)
目录 六、插件 6.1、分页插件 6.1.1、添加配置类 6.1.2、测试 6.2、xml自定义分页 6.2.1、UserMapper中定义接口方法 6.2.2、UserMapper.xml中编写SQL 6.2.3、测试 6.3、乐观锁 6.3.1、场景 6.3.2、乐观锁与悲观锁 6.3.3、模拟修改冲突 数据库中增加商品表 添加数…...

408数据结构算法模板
下面这份408数据结构算法模板耗时3天整理,希望对大家有用 408算法题概述 得分要点 会写结构定义(没有就自己写上)写清楚解题的算法思想描述清楚算法实现最后写出时间和空间复杂度 关于改卷 1、改卷老师不会上机试 2、老师改的是扫描卷 3、…...

Mysql--索引分类
Mysql--索引分类 1. 索引分类2. 聚集索引&二级索引 1. 索引分类 在MySQL数据库,将索引的具体类型主要分为以下几类:主键索引、唯一索引、常规索引、全文索引。 2. 聚集索引&二级索引 而在在InnoDB存储引擎中,根据索引的存储形式&am…...

AutoTimes:通过大语言模型的自回归时间序列预测器
论文标题: AutoTimes: Autoregressive Time Series Forecasters via Large Language Models 作者:Yong Liu, Guo Qin, Xiangdong Huang, Jianmin Wang, Mingsheng Long 链接:https://arxiv.org/abs/2402.02370 机构:清华大学 …...
记录 | go与C/C++交互
Go语言是类C的语言,与C语言有着千丝万缕的联系,在Go语言的代码中可以直接调用C语言代码,但不支持直接调用 C。 Go 调用 C/C 的方式: C:直接调用 C API;C:通过实现一层封装的 C 接口来调用 C 接…...
B3623枚举排列
题目描述 今有 n 名学生,要从中选出 k 人排成一列拍照。 请按字典序输出所有可能的排列方式。 输入格式 仅一行,两个正整数 n,k。 输出格式 若干行,每行 k 个正整数,表示一种可能的队伍顺序。 输入输出样例 输入 #1复制 …...
vuex怎么防止数据刷新丢失?
Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式和库。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。为了防止 Vuex 中的数据在刷新时丢失,你可以采取以下策略: 持久化插件:…...
OpenGL ES 渲染 NV21、NV12、I420、YV12、YUYV、UYVY、I444(建议收藏)
本文主要讲解常见的 YUV 格式图像渲染方式,如果对 YUV 格式不是很熟悉的同学可以翻看旧文一文掌握 YUV 图像的基本处理,YUV 格式的介绍这里不再展开。 渲染 NV21、NV12 格式图像 NV21、NV12 可以看成同一种结构,区别只是 uv 的交错排列顺序不同。 渲染 NV21/NV12 格式图像…...
云计算的两地三中心和灾备介绍
两地三中心是指在不同的地理位置建立两个数据中心和一个灾备中心,其中一个数据中心为主数据中心,另一个数据中心为备用数据中心,灾备中心则用于备份数据和在主数据中心或备用数据中心发生故障或灾难时提供应急支持。 异地灾备则是指在不同的地…...
Spring Bean
Spring的配置方式 1、xml配置文件 2、基于注解的方式 3、基于Java的方式 Spring Bean的生命周期 1、通过构造器或工厂方法创建bean实例 2、为bean的属性赋值 3、调用bean的初始化方法 4、使用bean 5、当容器关闭时,调用bean的销毁方法 Spring inner beans …...
Linux的时间操作
当涉及到时间操作时,Linux提供了一系列函数和结构体来处理时间的获取、转换和操作。 time_t 别名 time_t 是 C/C 中用来表示时间的类型,通常被定义为整数类型。它通常用来存储从纪元(通常是1970年1月1日)到某一特定时间点之间的…...

2024-02-21 作业
作业要求: 复习课上内容 //已完成结构体字节对齐,64位没做完的做完,32位重新都做一遍,课上指定2字节对齐的做一遍,自己验证 //已完成两种验证大小端对齐的代码写一遍复习指针内容 //已完成完善顺序表已写出的…...
平台组成-监控服务
监控服务和其他服务不同,不是一个单一的微服务,准确来说是一个体系。每个微服务都集成了Actuator,通过Actuator对外提供微服务的运行状况。关于Actuator大家可以阅读这篇文章。《Spring boot——Actuator 详解》 其上是Micrometer&…...

探索分布式强一致性奥秘:Paxos共识算法的精妙之旅
提到分布式算法,就不得不提 Paxos 算法,在过去几十年里,它基本上是分布式共识的代名词,因为当前一批常用的共识算法都是基于它改进的。比如,Fast Paxos 算法、Cheap Paxos、Raft 算法等。 由莱斯利兰伯特(L…...

使用 ES|QL 优化可观察性:简化 Kubernetes 和 OTel 的 SRE 操作和问题解决
作者:Bahubali Shetti 作为一名运营工程师(SRE、IT 运营、DevOps),管理技术和数据蔓延是一项持续的挑战。 简单地管理大量高维和高基数数据是令人难以承受的。 作为单一平台,Elastic 帮助 SRE 将无限的遥测数据&#…...

Docker 第十九章 : 阿里云个人镜像仓使用
Docker 第十九章 : 阿里云个人镜像仓使用 本章知识点: 如何创建镜像库,如何设置密码,如何登录与退出个人镜像仓,如何本地打镜像,如何将本地镜像推送到个人镜像库。 背景 在项目YapiDocker部署中,因读取mongo:latest 版本不一致,导致后续执行步骤的异常。遇到此场景…...
FFmpeg 低延迟同屏方案
引言 在实时互动需求激增的当下,无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作,还是游戏直播的画面实时传输,低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架,凭借其灵活的编解码、数据…...

通过Wrangler CLI在worker中创建数据库和表
官方使用文档:Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后,会在本地和远程创建数据库: npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库: 现在,您的Cloudfla…...

跨链模式:多链互操作架构与性能扩展方案
跨链模式:多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈:模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展(H2Cross架构): 适配层…...
JDK 17 新特性
#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持,不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的ÿ…...
实现弹窗随键盘上移居中
实现弹窗随键盘上移的核心思路 在Android中,可以通过监听键盘的显示和隐藏事件,动态调整弹窗的位置。关键点在于获取键盘高度,并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...
JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案
JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停 1. 安全点(Safepoint)阻塞 现象:JVM暂停但无GC日志,日志显示No GCs detected。原因:JVM等待所有线程进入安全点(如…...
Spring是如何解决Bean的循环依赖:三级缓存机制
1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间互相持有对方引用,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...

【网络安全】开源系统getshell漏洞挖掘
审计过程: 在入口文件admin/index.php中: 用户可以通过m,c,a等参数控制加载的文件和方法,在app/system/entrance.php中存在重点代码: 当M_TYPE system并且M_MODULE include时,会设置常量PATH_OWN_FILE为PATH_APP.M_T…...

C++ 设计模式 《小明的奶茶加料风波》
👨🎓 模式名称:装饰器模式(Decorator Pattern) 👦 小明最近上线了校园奶茶配送功能,业务火爆,大家都在加料: 有的同学要加波霸 🟤,有的要加椰果…...
Vue 模板语句的数据来源
🧩 Vue 模板语句的数据来源:全方位解析 Vue 模板(<template> 部分)中的表达式、指令绑定(如 v-bind, v-on)和插值({{ }})都在一个特定的作用域内求值。这个作用域由当前 组件…...