VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

有编程疑问吗?还请到提问专区发帖提问!
搜索
查看: 10476|回复: 182

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

  [复制链接]
01_avatar_middle
online_admins admin 发表于 2017-8-29 01:02:31 | 显示全部楼层 |阅读模式
《实用C++》第7课:C++中的运算符《实用C++》第7课:C++中的运算符

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

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

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

&#9658; 逻辑运算符:
&&(逻辑与)、||(逻辑或)、!(逻辑非)

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

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

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;

下图表示了类型自动转换的规则:
《实用C++》第7课:C++中的运算符

例如: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

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




上一篇:关于C++中vector数组的首地址问题
下一篇:《实用C++》第8课:赋值运算符和赋值表达式

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

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

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

98_avatar_middle
在线会员 tomok 发表于 2017-8-29 08:32:53 | 显示全部楼层
继续学习


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

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

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

回复 支持 反对

使用道具 举报

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

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

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

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

回复 支持 反对

使用道具 举报

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

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

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

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

回复 支持 反对

使用道具 举报

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

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

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

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

回复 支持 反对

使用道具 举报

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

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

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

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

回复 支持 反对

使用道具 举报

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

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

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

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

回复 支持 反对

使用道具 举报

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

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

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

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

回复 支持 反对

使用道具 举报

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

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

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

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

回复 支持 反对

使用道具 举报

95_avatar_middle
在线会员 jixiaorui 发表于 2017-8-31 14:55:00 | 显示全部楼层
!!!!!!!!!!!!!

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

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

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

回复 支持 反对

使用道具 举报

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

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

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

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

回复 支持 反对

使用道具 举报

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

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

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

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

回复 支持 反对

使用道具 举报

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

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

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

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

回复 支持 反对

使用道具 举报

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

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

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

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

回复 支持 反对

使用道具 举报

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

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

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

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

回复 支持 反对

使用道具 举报

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

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

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

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

回复 支持 反对

使用道具 举报

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

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

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

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

回复 支持 反对

使用道具 举报

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

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

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

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

回复 支持 反对

使用道具 举报

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

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

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

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

回复 支持 反对

使用道具 举报

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

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

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

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

回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

站长提醒上一条 /1 下一条

QQ
QQ在线咨询
联系电话
13591366679
手机扫一扫 关注本站精彩内容
wxqrcode

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2018-9-26 21:32

Powered by Discuz! X3.4

© 2009-2018 cctry.com

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