VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 1704|回复: 42

《实用C++》第7课:C++中的运算符

[复制链接]
admin 发表于 2017-8-29 01:02:31 | 显示全部楼层 |阅读模式


1、C++中提供了很多种运算符:

► 算术运算符:
+(加)、-(减)、*(乘)、/(除)、%(整除求余)、++(自加)、--(自减)

► 关系运算符:
>(大于)、<(小于)、==(等于)、>=(大于或等于)、<=(小于或等于)、!=(不等于)

► 逻辑运算符:
&&(逻辑与)、||(逻辑或)、!(逻辑非)

► 位运算符:
<<(按位左移)、>>(按位右移)、&(按位与)、|(按位或)、^(按位异或)、~(按位取反)

► 赋值运算符:(=号及其扩展赋值运算符)
► 条件运算符:(?:)
► 逗号运算符:(,)
► 指针运算符:(*)
► 引用运算符和地址运算符:(&)
► 求字节数运算符:(sizeof)
► 强制类型转换运算符:((类型) 或 类型())
► 成员运算符:(.)
► 指向成员的运算符:(->)
► 下标运算符:([])
► 其他运算符:(如函数调用运算符())

C++中提供了如此之多的运算符,大家刚开始学,也不用都记住,以后会慢慢用到慢慢讲解到的,大家先混个脸熟,大概知道有这么个东西就行。

2、基本的算术运算符:

基本的算术运算符无外乎就是加减乘除,但是这里面也有些门道,且听我细细道来!
+:加法运算符或正值运算符:2+3,+3;
-:减法运算符或负值运算符:5-2,-3;
*:乘法运算符:3 * 5;
/:除法运算符:5/3;
%:求余运算符:5%3,要求两侧均为整数

加、减、乘 这几个没什么好说的,跟我们现实生活中的运算基本一致。这里我重点说一下除法和求余运算符,跟我们平时见过的有点不一样!
5/3 大家知道结果是多少吗?猜一猜,这里不说5/3了,简单点,就说5/2,很多学员肯定马上就回答了:2.5,到底结果是不是 2.5 呢,我们到VS2013中来测试一下。详情见视频语音讲解。
int x = 5, y = 2;
cout << "5 / 2 = " << x / y << endl;

所以,这里面的 / 是求商的意思。5除以2,商=2,余数是1,这个大家小学的时候应该学过。同理,5/3=1,商是1,余数2;
4/2=2,商是2,余数是0;那我要问了,3/5呢?3/5=0,余数是3;

% 就是求余的功能,我们不妨来试一下,详情见视频教程!~

那么有的会员会问了,我想正确的得到 5除以2等于2.5,怎么办呢?别着急,不是还有浮点类型的数嘛!

float x = 5.0, y = 2.0;
cout << "x / y = " << x / y << endl;

再问大家一个问题:
float x = 5.0;
int y = 2;
cout << "x / y = " << x / y << endl;
这个结果是什么呢?大家可以自己动手试试!答案是:2.5

3、混合类型运算规则:
在表达式遇到不同数据类型的混合运算时,要求不同类型的数据要先转换成同一类型然后才能进行运算。默认编译器会有个规则进行自动转换:
自动转换遵循以下规则:
       
1) 若参与运算的两个参数类型不同,则先转换成同一类型,然后再进行运算;
2) 按照数据长度增加的方向进行(即:由 少字节类型 向 多字节类型 转换),以保证精度不丢失;
3) 所有的浮点运算都是以双精度进行的,即使仅含 float 单精度量运算的表达式,也要先转换成 double 类型,再作运算;
4) char 类型 和 short 类型参与运算时,必须先转换成 int 类型,也就是说最小的运算整形单位是 int;
5) 在赋值运算中,赋值号两边量的数据类型不同时,赋值号右边量的类型将转换为左边量的类型(右随左变)。如果右边的数据类型的长度比左边长时,将丢失一部分数据,这样会降低精度,例如:int x = 2.5;

下图表示了类型自动转换的规则:


例如:2.5+3,这里面两个数,第一个是浮点类型,我们可以认为是float,第二个是整形,我们可以认为是int,这里如果将两个数都转换成int整形,那么float类型的2.5肯定表示不了,整形没有小数点,所以如果这样转的话就会丢数据,2.5变成2了,所以不可取。那么就得按照float来转,将3转换成float类型的3.0,所以结果就是double类型的3.5了,大家明白了吗?

★注意:无论是 自动转换 还是 强制转换 ,都只是为了本次运算的需要而对变量的数据长度进行的临时性转换,不会改变数据说明时对该变量定义的类型。

4、强制类型转换运算符:
有时候我们不想要编译器默认的自动转换,我们要手动进行强制类型转换,例如:大家到超时买东西,最后所有东西的价格是:36.08元,对于结尾的8分钱一般都是直接省略掉了,所以就取整36,等等。这时候就需要强制类型转换。
另外,大家打车的时候是不是也不找零,都是四舍五入,例如:21.4,那么师傅就收21,如果是21.8,那么师傅就收22,也是一样的道理。现实生活中会有很多种这样的情况。

强制类型转换有两种表达形式,下面举例说明:
int x = 2;
float y = 3.6;
x = (int)y;
y = float(x);

大家说说强制类型转换之后 x 和 y 的值是多少呢?

5、自增++和自减--运算符:
这个++和--也是我当初学习C语言的时候总搞糊涂的一个东西,对于新手来说很绕。下面用通俗的话给大家讲解下,例如:x++ 等于 x = x+1
int x = 2;
int y = x++;
int z = ++y;
这几条语句之后,x,y,z 的值分别为多少呢?
给大家说下,x++ 不要当做一条语句来看,同样,++x 也不要当做一条语句来看。他的作用不仅仅是对变量 x 进行+1操作,他本身还是个表达式;
不管是 x++ 还是 ++x 执行完之后,x变量自己的值都进行了+1,但是针对整个 x++或者++x的值就不一样了。x++执行之后,这个表达式的值还是x+1之前的值,++x执行之后,这个表达式的值是x+1之后的值。
所以:int y = x++; 执行之后,x的值为3,y的值为2;int z = ++y; 执行完之后,y的值是3,z的值也是3,大家明白了吗?

具体大家听我视频讲解吧,语音的形式比文字更好表达一些,这样大家能听的更明白一些。

第7课免费试看,下载地址(回复后可见):
游客,如果您要查看本帖隐藏内容请回复


#######################################################
获得所有教学视频、课件、源代码以及售后答疑详见:
《实用C++》:http://www.cctry.com/thread-275996-1-1.html
VC驿站官方客服QQ:8260671

#######################################################

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?加入驿站

x

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

tomok 发表于 2017-8-29 08:32:53 | 显示全部楼层
继续学习


发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

lm68140318 发表于 2017-8-29 10:22:20 | 显示全部楼层
课程真心不错,报名VC驿站的vip会员这么长时间了,说句公道话真心值。不管是教程还是老师的答疑,都很认真!

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

zp521 发表于 2017-8-30 09:06:54 | 显示全部楼层
不断学习!!!

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

ChenLeo 发表于 2017-8-30 09:39:37 | 显示全部楼层
跟进学习

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

Mtong 发表于 2017-8-30 10:02:02 | 显示全部楼层
跟进学习

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

fr000038 发表于 2017-8-30 14:34:28 | 显示全部楼层
老师,能一周更新多点不,就喜欢老师你讲课,讲的通俗易懂

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

jesy 发表于 2017-8-30 21:26:00 | 显示全部楼层
来学习了啊。。。

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

jk2987 发表于 2017-8-31 13:22:11 | 显示全部楼层
来学习啦!老大威武。。。。。

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

jixiaorui 发表于 2017-8-31 14:55:00 | 显示全部楼层
!!!!!!!!!!!!!

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

supersct 发表于 2017-8-31 21:22:12 | 显示全部楼层
跟进学习

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

csa 发表于 2017-9-1 09:24:28 | 显示全部楼层
下载学习,谢谢。

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

VC松 发表于 2017-9-2 11:32:10 | 显示全部楼层
谢谢老大

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

wssfcn 发表于 2017-9-2 18:36:02 | 显示全部楼层
继续学习

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

463213151 发表于 2017-9-3 12:14:13 | 显示全部楼层
谢谢分享

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

Roinlong 发表于 2017-9-3 13:42:50 | 显示全部楼层
瞅瞅,看看怎么样

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

Jany 发表于 2017-9-3 23:11:08 | 显示全部楼层
谢谢分享实用C++

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

qq335647559 发表于 2017-9-4 16:09:52 来自手机 | 显示全部楼层
感谢分享

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

微笑的向日葵 发表于 2017-9-5 18:10:07 | 显示全部楼层
又要回复啊

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

蚊子 发表于 2017-9-6 08:35:41 | 显示全部楼层
老大能不能早点睡

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入驿站

本版积分规则

展开

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号 )

返回顶部
x

VC驿站微信公众号cctry2009

GMT+8, 2017-10-21 23:43

Powered by Discuz!

© 2009-2017 cctry.com

快速回复 返回顶部 返回列表