IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> c语言操作符详解 -> 正文阅读

[C++知识库]c语言操作符详解

目录

前言

1.算术操作符

+? -? *? /?

%

2.移位操作符

>> (右移操作符)? <<(左移操作符)

左移操作符:<<

右移操作符:>>

3.位操作符

3.1 & 按位与

3.2 | 按位或

3.3? ^? 按位异或

?3.4 ~ 按位取反

4.赋值操作符 =

5.逻辑操作符

5.1 ! 非

5.2 && 与

5.3 || 或

6.条件运算符 ?

7.单目操作符

7.1 !

7.2 + 正值

7.3 - 负值

7.4 & 取地址

7.5 sizeof

7.6 (强制类型转换)

?7.7 ++? --自增自减

7.8 * 解引用

8. 逗号表达式

?9.? 关系操作符? ==? >= <=? !=? >? <? =

9.1 ==

9.2 !=

9.3 >= <=

结语


前言

操作符在c语言中有着必不可缺的作用,它们能使一些算法变得简单,接下来就由我来为大家详细解说。

1.算术操作符

+? -? *? /?

这4个运算符均可用于整型和浮点型的运算,但只有当两位数中一位时浮点型时,才能得出浮点型的结果。如: ? 3/2=1,??? 3/2.0=1.5。

%

取余数,经常用于控制一个数的范围。这个操作符的数必须为整数,如:? 3%2=1,4%3=1。

2.移位操作符

>> (右移操作符)? <<(左移操作符)

首先讲左移操作符,首先我们要知道电脑存储一个数字是以二进制形式存储的,而存储又分为原码,反码,补码,在电脑中存的是补码,打印出来的是原码。编译器有32位和64位的,我这里以32位做测试。关于原反补码我简单说,正数的原反补码都相同,原码的第一位为符号位,正数位0,负数位1.如下:

?而二进制可以转化为16进制,就是我写的0x开头后面的数字,记住0x是16进制的标志,而后面的

可以分为8段每一段都是从右向左数,2^0,2^1,2^2,2^3.如果那位数是几就乘以它。

负数的反码与原码取反,0变1,1变0,但符号位不变。补码就是反码最后一位加1,满2进1.如下:

左移操作符:<<

?知道了这些后,左移操作符就很简单了,就是左边丢弃右边补0,且操作的是补码

对于正数3如下:3<<1

它的作用相当于乘以了2,当然是移1位。也可以移多位,比如3<<2,3<<3等等。

ps-左移操作符和右移操作符移位时不能移负数位。比如:3<<-2,这是不行的。

右移操作符:>>

右移操作符就相对于来说较难了。

右移操作符可以分为逻辑右移和算术右移,逻辑右移就是右边丢弃,左边补0(和左移操作符有点类似);而算术右移就是右边丢弃,左边补符号位。下面是-2算术右移后的结果

?它的作用相当于/2。

3.位操作符

3.1 & 按位与

同上述的移位操作符一样,位操作符也是操作一个数的补码。

比如-1的补码和-2的补码:令a=(-1)&(-2)

当两者都为1时才返回1,只要有一个时0就返回0。所有返回:

结果还是-2.

3.2 | 按位或

| 按位或操作符就是只要有一个是1,就返回1,全为0才返回0

比如-1和-2,按位或后结果还是-1

3.3? ^? 按位异或

^ 按位异或 是相同时返回0,不同时返回1.符号位也要变。

-1和-2,按位异或后结果为正1

?3.4 ~ 按位取反

~ 按位取反 每个二进制位0变1 ,1变0。

结果为0.

4.赋值操作符 =

对一个变量进行赋值,比如int a;a=5;

5.逻辑操作符

5.1 ! 非

! 又是单目运算符,在逻辑运算中,优先顺序最高。非运算符的结果只能是1或者0.

在c语言中规定一切非0值等同于1.而非运算符就是使0变1,1变0.比如!1=0; !0=1。

5.2 && 与

&& 是并且的意思,当两边的操作数都为1时,返回结果位1,两者只要一个为0,结果就为0.

比如令a=1&&2,a的结果时1,a=0&&2,结果为0.

5.3 || 或

|| 操作符,当两个操作数只要有一个为1,返回结果就为1,全为0,返回结果为0.

6.条件运算符 ?

?? 是c语言中唯一一个三目操作符,它连接三个运算量

一般形式为:? 表达式1?表达式2:表达式3

当表达式1的结果为非0时,返回表达式2的值

当表达式1结果为0时,返回表达式3的值

如:

int a=2,b=3,c=4,d;
d=(a<b)?a:c;

7.单目操作符

7.1 !

详见5.1

7.2 + 正值

7.3 - 负值

7.4 & 取地址

c语言中,每个变量都有一个地址,该操作符用来获取变量在内存中的地址。一般形式为&变量名

取地址符的运算对象只能是变量,他的运算结果是变量的存储地址,一个变量会占据多个字节,而每个字节都有地址,其中最小的地址代表变量地址。

7.5 sizeof

求字节长度比如求一个数组的字节大小会包含数组内的所有元素。

比如说这个图,数组arr是int类型的,而里面包含6个元素,所以他的字节长度为24,而arr[0]是一个int类型字节长度为4.看到第三个,你们想到了什么?没错,他能用来求一个数组内有多少个元素,因为总字节长度除以一个元素字节长度,不就能得到数组中总共有多少个元素嘛!

7.6 (强制类型转换)

可以将一个类型强制转换为另一个类型,一般形式(类型)变量或常量。

?7.7 ++? --自增自减

这里自增自减又分为两种,前置++和后置++,如a++或++a,这两者是不同的,前者为先使用a再对a进行加1,后者为先加1再使用。简单举个例子:

c和d前置和后置的结果时不同的,虽然对于c和d的结果不同,但对a和b的操作都是加了1。

自减就和自增一样喽。

7.8 * 解引用

“引用”这个词,出现最多的场景就是:在文章或者注脚里,写上“引用(或摘自)某某作者某篇文章”,意思很明了,就是出现在本文的不是作者自己的话,而是别个作者的话,于是“引用”的意思就是拿过来用。还可以把“解引用”理解为“解码”。假设ptr里存放的是一个内存地址,那么*ptr就是这个内存地址里存放的数据。前面这个“*”的解引用操作,就可以理解为对这个ptr进行解码,解码得到的数据就是*ptr,也就是我们常说的“这个内存地址里存放的数据”或者“这个指针指向的数据”。“指针”的理解模式太容易混淆,而“解码”的理解模式更好记一点。

8. 逗号表达式

一般形式(表达式1,表达式2,表达式3,·······)

逗号表达式一般用来判断,他的运算结果时最后一个表达式,但并非就是说前面的表达式就不需要看了,因为他的执行顺序是从左往右。

就比如这个,由于我用了一个逗号表达式,因此循环停下来的条件是j小于4,但j一直等于0,又没有对其进行任何操作,所有它陷入了死循环,就会一直打印hehe。而在正常情况下:

再比如:

?9.? 关系操作符? ==? >= <=? !=? >? <? =

> < =这几个操作符就不要多说了吧。

9.1 ==

测试是否等于,在判断字符串是否有相等的时,必须要用==,而不能用=。

在if语句中必须用==,而不能用=,=在c语言中是赋值,不能将它理解为数学中的等于。

9.2 !=

!=? 不等于,也通常用于if语句中,来判断变量是否满足条件。

9.3 >= <=

大于或等于,小于或等于,也一般用于判断语句中。

结语

好了,c语言操作符基本已经讲完,如果觉得不错记得点赞哦,发现错误及时评论哦。拜拜!

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-08-20 14:54:29  更:2021-08-20 14:55:07 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/27 5:04:59-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计