当前位置:网站首页>C语言中的一系列操作符
C语言中的一系列操作符
2022-08-02 16:52:00 【51CTO】
C语言中有一系列的操作符,这些操作符你是否都认识呢?
想要学好C语言首先你得有一种空杯心态,所以不管认不认识都和我们一起再看一遍吧!
C语言中的操作符:
C语言中主要包括算术操作符、移位操作符、位操作符、赋值操作符、单目操作符、关系操作符、逻辑操作符、条件操作符、逗号表达式等。让我们一一来看看它们到底如何使用吧!
算数操作符: +、-、* 、/、%
算术操作符中的+、-、* 相信大家都会,但一些初学者就分不清楚/和%的区别(悄悄告诉你我几个月前也分不清)。


其实a/b的结果就是a除以b的商,而a%b就是a除以b所得的余数,就像代码中7除以2商3余1,所以7/2等于3,而7%2等于1。
移位操作符: <<、>>
左移操作符与右移操作符相似,我们就以左移操作符举例吧。


那么为什么结果是10呢?
其实数字在电脑中是以二进制方式储存的,而int型的大小为4个字节,也就是32个比特位,所以5的二进制表示为00000000000000000000000000000101,a<<1也就是将a的二进制位统一向左移动一位,空出来的用0补齐,将变换后的二进制转换为十进制输出即可。

而a<<1后的二进制所对应的十进制数便是10,所以输出为10。
位操作符: &、|、^
位操作符的运算机制很相似,只是规则不同而已。它们都是先把待操作数转化为二进制,将它们二进制每一位的数字进行比较,然后进行操作。
&:二进制对应位两个都为1则为1,否则为0。
|:二进制对应位两个都为0则为0,否则为1。
^:二进制对应位相同则为0,不同则为1。


赋值操作符: =、+=、-=、*=、/=、&=、|=、^=、<<=、>>=
赋值操作符在我看来就是简化了一下语句:

其他的以此类推即可。虽然刚开始看起来有点别扭,但当你看多了也就习惯啦^ _ ^
单目操作符:
操作符 | 操作符的作用 |
! | 逻辑反操作 |
- | 负值 |
+ | 正值 |
& | 取地址 |
sizeof | 操作数的类型长度(以字节为单位) |
~ | 对一个数的二进制按位取反 |
- - | 前置、后置- - |
++ | 前置、后置++ |
* | 间接访问操作符(解引用操作符) |
(类型) | 强制类型转换 |
单目操作符,顾名思义其操作数只有一个。
关系操作符: >、>=、<、<=、!=、==
关系操作符比较简单,但要注意使用 ==时,不要写成=了,初学者需要特别注意这一点。
逻辑操作符: &&、||
&&:两边为真即为真,否则为假。
||:两边为假才为假,否则为真。
(它们都是为真返回1,为假返回0。)

条件操作符: expr1?expr2:expr3
该表达式中,如果expr1为真,则返回expr2的值,否则返回expr3的值。

逗号表达式: expr1,expr2,expr3,…,exprN
逗号表达式会按从左到右的顺序进行编译,但最后返回的是最后一个表达式的值。

边栏推荐
- 锁定和并发控制(三)
- 接入网学习笔记
- 总结:不同语言比较总结
- navicat creates a connection 2002-can't connect to server on localhost (10061) and the mysql service has started the problem
- oracle 和mysql 语句结果不一致问题
- 德国客户对文档管理系统、工作流自动化软件 DocuWare 的评价
- Redis进阶之路:深度解析Redis单线程架构,图文并茂不能再清晰了
- 【Redis】连接报错:Could not connect to Redis at 127.0.0.1:6379: Connection refused
- 总结嵌入式C语言难点 (1部分) 【结尾有资料】
- 融云「 IM 进阶实战高手课」系列直播上线
猜你喜欢

莱斯大学胡侠团队 ICML 2022 杰出论文: 新型图数据增强方法 G-Mixup|附作者对话

LeetCode·每日一题·

【一】TS安装编译配置自动生成.js文件

npm install 编译时报“Cannot read properties of null (reading ‘pickAlgorithm‘)“
![js商品总价格、最高价格商品、排除重复商品[初版]](/img/6f/11241f0d717b0c4e163986ba76fe0b.png)
js商品总价格、最高价格商品、排除重复商品[初版]

电烙铁的基础知识

【二】TS基本类型

【无标题】

FPGA 20个例程篇:10.遍历DDR3内存颗粒读写循环校验

Five speakers: seventy genius_platform software platform development 】 【 turn YUY2 RGB24 implementation source code
随机推荐
【二】TS基本类型
红蓝对抗经验分享:CS免杀姿势
VMware启动报错:另一个程序已锁定文件的一部分,进程无法访问(删除最近的.lck文件夹)
SQL Statement Basics
golang源码分析(7):chan
npm install 报错问题解决合集
融云「 IM 进阶实战高手课」系列直播上线
js实现改变原来对象中的键值对对应的值
Oracle 11 g rac finished patch, dbca new patches of SQL database also needs to perform?
Pytest study notes
NAACL 2022 | 具有元重加权的鲁棒自增强命名实体识别技术
nacos集群配置详解
JWT原理详解_电磁感应现象原理
锁定和并发控制(四)
Nacos interview questions
尚硅谷尚品项目汇笔记(二)
Inconsistency between oracle and mysql statement results
Common software silent installation parameters
【genius_platform软件平台开发】第七十五讲:YUY2转RGB24实现源码
QACTION_QAWiki