C语言中操作符详解(二)

OK,今天继续为诸君带来有关C语言中操作符的讲解

一 . 位操作符 

C语言中的位操作符我相信大家并不陌生,我们在之前就已经接触过了一些

位操作符(位操作符的操作数只能是整数):

(1)& :按位与(同为 1 才为 1 ,否则为 0 )

(2) | :按位或(有 1 就为 1 )

(3) ^ :按位异或(不同为 1 ,否则为 0 )

(4) ~ :按位取反( 0 变 1 ,1 变 0 )

(5) << :按位左移

(6) >> :按位右移

注意!!!:整形表达式的计算使用在内存中都是补码,我们打印和看到的也都是补码,所有的位运算都一样!!!

这里通过一道例题来帮助大家理解位操作符:

二 . 单目操作符

之前提到过,单目操作符就是只针对一个操作数而言的操作符。我们常见的单目操作符有:

!、+ 、- 、++ 、-- 、* 、& 、~ 、sizeof 、(类型)

有关单目操作符除了 & 和 * ,其他的单目操作符我们在前面都讲过,这两个呢会计划在指针部分为大家讲解,其他的操作符就请诸君移步:

C语言中的操作符-CSDN博客

关系操作符,条件操作符与逻辑操作符_关系模式操作符-CSDN博客

四 . 逗号表达式

逗号表达式,顾名思义,就是用逗号隔开的多个表达式:
exp1,exp2,exp3,......,expN

逗号表达式遵循从左向右依次执行的原则(整个表达式的结果是最后一个表达式的结果

这里直接给大家上图理解:

五 . 下标引用操作符

下标引用操作符:[ ] 

操作数:一个数组名 + 一个索引值(下标)

实际上在我们学习数组的时候就已经不知不觉地在运用下标引用操作符了

六 . 函数调用操作符

函数调用操作符:(),可以接收一个或者多个操作数,第一个操作数就是()前面的函数名,剩余的操作数就是()内的传递给函数的参数

七 . 操作符的属性

操作符有两个属性:优先性、结合性

这两个属性决定了表达式求值的计算顺序

(1)优先性

优先性指的是,如果一个表达式包含多个运算符,我们就应该依照操作符的优先性来判断哪一个运算符优先执行,()的优先级最高,所以()可以改变其它运算符的优先级

(2)结合性

如果两个运算符的优先性相同,这个时候我们就得看它俩之间的结合性了,根据运算符是左结合还是右结合来决定运算顺序

(大部分运算符都是左结合(从左到右),少数是右结合(从右到左)例如赋值运算符:= )

例如:5 * 6  / 2

* 和 / 优先级相同,且它们都是左结合运算符,所以从左到右依次执行

有关优先性结合性,大家可以参考此图:

想要了解更加详细的运算符的优先性和结合性的,可以移步到官网查看:

https://zh.cppreference.com/w/c/language/operator_precedence

OKK,今天就说这么多啦,操作符虽然繁多,但是细分下来知识点都很简单,诸君都是聪明人,相信这部分大家不难理解昂。咱们下期再见,与诸君共勉!!!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

头歌——机器学习——集成学习案例

第1关&#xff1a;基于集成学习模型的应用案例 任务描述 本次任务我们将会使用银行营销数据集&#xff08;来源于UCI数据集&#xff1a;UCI Machine Learning Repository &#xff09;,该数据集共45211条数据&#xff0c;涉及葡萄牙银行机构的营销活动&#xff0c;通过一些与…

idea http client GET 请求 报503错误

idea 提供的 http client 插件&#xff0c;在 GET 请求时总是 报503 的错误&#xff0c;但请求URL可以在浏览器中正常访问。 GET localhost:8080/student Response file saved. > 2024-06-20T160906.503.html 有一种原因跟本地配置的代理有关&#xff0c;如下图。如果在…

ubuntu22.04笔记: 更换为阿里源

没有按照LTS 版本 会遇到下面问题&#xff1a; 参考&#xff1a;https://zhuanlan.zhihu.com/p/691625646 Ubuntu 22.04代号为&#xff1a;jammy Ubuntu 20.04代号为&#xff1a;focal Ubuntu 19.04代号为&#xff1a;disco Ubuntu 18.04代号为&#xff1a;bionic Ubuntu …

winmail添加gmail和QQ邮箱(现已更新为outlook mail)

想在windows自带的邮件桌面应用里&#xff0c;不仅能访问outlook邮件&#xff0c;也能访问gmail邮件和QQ邮件的方法。 参考文章&#xff1a; Windows 10 的邮件怎么添加并同步 Gmail&#xff1f;​www.zhihu.com/question/53079836/answer/147669935?utm_psn178781450843941…

嘉楠勘智CanMV-K230的大小核如何操作

摘要&#xff1a;嘉楠勘智CanMV-K230的帮助文档、例子模型说明中&#xff0c;一直在提“大核&#xff0c;小核”&#xff0c;还提到将文件复制到小核并解压&#xff0c;然后在大核中操作&#xff0c;本文介绍一下这两个“核”如何操作。 所需的硬件&#xff1a;CanMV-K230-V1.1…

zkWASM:ZK+zkVM的下一站?

1. 引言 ZK技术具备极大通用性&#xff0c;也帮助以太坊从去中心化投资走向去信任化的价值观。“Don’t trust, Verify it!”&#xff0c;是ZK技术的最佳实践。ZK技术能够重构链桥、预言机、链上查询、链下计算、虚拟机等等一系列应用场景&#xff0c;而通用型的ZK协处理器就是…

论坛实现随机发帖的学习

1、badboy操作&#xff0c;录制发帖全过程&#xff0c;录制结果保存&#xff0c;生成为.jmx格式的文件 2、在Jmeter中打开该.jmx文件&#xff0c;重命名&#xff0c;便于了解步骤 3、生成结果树&#xff0c;查看所以步骤是否正确 4、实现随机发帖。。。。还没写完

Python爬虫-贝壳新房

前言 本文是该专栏的第32篇,后面会持续分享python爬虫干货知识,记得关注。 本文以某房网为例,如下图所示,采集对应城市的新房房源数据。具体实现思路和详细逻辑,笔者将在正文结合完整代码进行详细介绍。接下来,跟着笔者直接往下看正文详细内容。(附带完整代码) 正文 地…

折线统计图 初级

此为折线统计图的初级题目。 本次的题目较难&#xff0c;菜鸡请退出。 4. 下图显示了甲、乙两台电脑的价格以及它们已使用的年数&#xff0c;从图中可以知道( )。 15. 妈妈去菜市场买菜&#xff0c;走到半路遇到一位熟人聊了一会儿&#xff0c;突然发现忘了带钱。于是马上回…

在 IntelliJ IDEA 中使用 Java 和 Selenium 模拟 Chrome 浏览器教程

在 IntelliJ IDEA 中使用 Java 和 Selenium 模拟 Chrome 浏览器教程 1. 前言2. 环境准备3. 关闭谷歌自动更新通过服务禁用更新服务通过任务计划程序禁用更新任务 4. 项目添加 Maven 依赖项5. 编写自动化脚本6. 项目运行效果7. 代码示例8.常用方法示例页面请求定位标签获取内容操…

26.3 Django路由层

1. 路由作用 在Django中, URL配置(通常称为URLconf)是定义网站结构的基础, 它充当着Django所支撑网站的目录. URLconf是一个映射表, 用于将URL模式(patterns)映射到Python的视图函数或类视图上. 这种映射机制是Django处理HTTP请求的基础, 它决定了当客户端发送请求时, Django如…

LeetCode 算法:二叉树的最大深度 c++

原题链接&#x1f517;&#xff1a;二叉树的最大深度 难度&#xff1a;简单⭐️ 题目 给定一个二叉树 root &#xff0c;返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,…

47、基于连续Hopfield神经网络的不稳定平衡

1、连续Hopfield神经网络的不稳定平衡原理及流程 连续Hopfield神经网络是一种用于模式识别和记忆的神经网络模型&#xff0c;其基本原理是通过权重矩阵来存储并检索各种模式。不稳定平衡指的是在Hopfield网络中&#xff0c;输入的模式通过网络的动态演化最终会达到一个平衡状态…

AG32 MCU是否支持DFU下载实现USB升级

1、AG32 MCU是否支持DFU下载实现USB升级呢&#xff1f; 先说答案是NO. STM32 可以通过内置DFU实现USB升级&#xff0c;AG32 MCU目前不支持。但用户可以自己写一个DFU&#xff0c; 作为二次boot. 2、AG32 MCU可支持的下载方式有哪些呢&#xff1f; 我们AG32裸机下载只支持uart和…

优化基于FT6336驱动芯片的触摸屏响应速度(STM32F4)

目录 概述 1 触摸屏功能实现 1.1 扫描监测方式 1.2 中断监测方式 2 ST7796-LCD 2.1 引脚定义 2.1.1 ST7796-LCD 2.1.2 MCU IO与LCD PIN对应关系 2.1.3 MCU IO与Touch PIN对应关系 2.2 FT6336的寄存器 2.2.1 FT6336寄存器列表 2.2.2 寄存器功能介绍 3 STM32Cub…

Python unoconv库:文档转换神器

更多Python学习内容&#xff1a;ipengtao.com unoconv&#xff08;Universal Office Converter&#xff09;是一个命令行工具&#xff0c;用于使用LibreOffice将不同格式的文档相互转换。通过unoconv&#xff0c;用户可以轻松地将文档从一种格式转换为另一种格式&#xff0c;例…

Android使用DevRing框架搭建数据库实体类以及使用

一、引用DevRing依赖 //导入DevRing依赖implementation com.ljy.ring:devring:1.1.8创建数据库表的依赖implementation org.greenrobot:greendao:3.2.2 // add libraryimplementation org.greenrobot:greendao-generator:3.0.0 二、修改工程目录下的.idea->gradle.xml文件&…

【Java算法】滑动窗口 下

​ ​ &#x1f525;个人主页&#xff1a; 中草药 &#x1f525;专栏&#xff1a;【算法工作坊】算法实战揭秘 &#x1f98c;一.水果成篮 题目链接&#xff1a;904.水果成篮 ​ 算法原理 算法原理是使用“滑动窗口”&#xff08;Sliding Window&#xff09;策略&#xff0c;结…

SD卡无法读取:原因解析与数据恢复策略

一、SD卡无法读取的尴尬场景 在数字化日益普及的今天&#xff0c;SD卡作为便携式存储设备&#xff0c;广泛应用于各类电子设备中。然而&#xff0c;当您急需访问SD卡中的数据时&#xff0c;却发现设备无法读取SD卡&#xff0c;这无疑是一个令人沮丧的场景。SD卡无法读取可能表…

SUSE linux 15的网络管理

1 手工配置网络 wicked提供了一种新的网络配置框架。自SUSE 12起&#xff0c;SUSE使用了新的网络管理工具wicked&#xff0c;这个是区别与其他常见发行版的。常见的发行版目前大多使用的是NetworkManager服务进行网络管理。 1.1 wicked网络配置 传统网络接口管理面临的挑战之…