吾爱汇编

 找回密码
 立即注册

QQ登录

绑定QQ避免忘记帐号

查看: 3102|回复: 11

[C/C++] C语言入门教程 第七课 算术运算符与算术表达式

[复制链接]
闪耀 发表于 2015-1-8 18:44 | 显示全部楼层 |阅读模式

有可能不更新了,因为此讨论学C不多
基本的算术运算符在本章中主要介绍算术运算符与算术表达式,赋值运算符与赋值表达式,逗号运算符与逗号表达式,其他运算符将在以后各章中陆续介绍。

常见算数运算符运算符说明举例
+加法运算符,或正值运算符3+5,+3
-减法运算符,或负值运算符5-2,-3
*乘法运算符3*5
/除法运算符5/3
%模运算符,或称求余运算符%两侧均应为整型数据,如7%4的值为3
需要说明,两个整数相除的结果为整数,如5/3的结果值为1,舍去小数部分。但是,如果除数或被除数中有一个为负值,则舍入的方向是不固定的。例如,-5/3在有的C++系统上得到结果-1,有的C++系统则给出结果-2。多数编译系统采取“向零取整”的方法,即5/3的值等于1,-5/3的值等于-1,取整后向零靠拢。

如果参加+,  -,  *, / 运算的两个数中有一个数为float型数据,则运算的结果是double型,因为C++在运算时对所有float型数据都按double型数据处理。
算术表达式和运算符的优先级与结合性用算术运算符和括号将运算对象(也称操作数)连接起来的、符合C++语法规则的式子,称C++算术表达式。运算对象包括常量、变量、函数等。例如,下面是一个合法的C++算术表达式:
    a*b/c-1.5+'a'

C++语言规定了运算符的优先级和结合性。在求解表达式时,先按运算符的优先级别高低次序执行,例如先乘除后加减。如有表达式a-b*c,b的左侧为减号,右侧为乘号,而乘号优先于减号,因此,相当于a-(b*c)。如果在一个运算对象两侧的运算符的优先级别相同,如a-b+c,则按规定的“结合方向”处理。

C++规定了各种运算符的结合方向(结合性),算术运算符的结合方向为“自左至右”,即先左后右,因此b先与减号结合,执行a-b的运算,再执行加c的运算。“自左至右的结合方向”又称“左结合性”,即运算对象先与左面的运算符结合。以后可以看到有些运算符的结合方向为“自右至左”,即右结合性(例如赋值运算符)。关于“结合性”的概念在其他一些高级语言中是没有的,是C和C++的特点之一,希望能弄清楚。

C++所有运算符以及它们的优先级别和结合性请查看这里:C++运算符优先级表
表达式中各类数值型数据间的混合运算在表达式中常遇到不同类型数据之间进行运算,如:
    10+'a'+1.5-8765.1234*'b'
在进行运算时,不同类型的数据要先转换成同一类型,然后进行运算。转换的规则按图2.7所示。

1-14042F22H4560.jpg
图2.7


假设已指定i为整型变量,f为float变量,d为double型变量,e为long型,有下面表达式:
    10+'a'+i*f-d/e
运算次序为:
  • 进行10+'a'的运算,先将'a'转换成整数97,运算结果为107。
  • 进行i*f的运算。先将i与f都转换成double型,运算结果为double型。
  • 整数107与i*f的积相加。先将整数107转换成双精度数(小数点后加若干个0,即107.000…00),结果为double型。
  • 将变量e转换成double型,d/e结果为double型。
  • 将10+'a'+i*f的结果与d/e的商相减,结果为double型。

上述的类型转换是由系统自动进行的。

评分

参与人数 13HB +21 THX +9 收起 理由
消逝的过去 + 2
飞刀梦想 + 1
agan8888 + 1
zxjzzh + 2 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
ding520 + 1 <span class="text2Link">[吾爱汇编论坛<a target="_blank">52HB.COM</a>]-学破解防破解,知进攻懂防守!</span>.
圈瞳 + 1 + 1 吃水不忘打井人,给个评分懂感恩!
arja + 1 + 1 教程非常易懂,对新人帮助极大!楼主大爱!
逍遥枷锁 + 2 + 1 评分=感恩!简单却充满爱!感谢您的作品!
China小二 + 2 + 1 评分=感恩!简单却充满爱!感谢您的作品!
520Kelly + 1 + 1 ★★★★★ 热心人,佛祖保佑你事事顺利 ,财源滚滚!!!
Scar-疤痕 + 2 + 1 ★★★★★ 热心人,佛祖保佑你事事顺利 ,财源滚滚!!!
wm378802548 + 1 + 1 好人有好报!你的热心我永远不忘!谢谢!
Shark恒 + 5 + 1 教程非常易懂,对新人帮助极大!楼主大爱!

查看全部评分

吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
wm378802548 发表于 2015-1-8 19:23 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
Scar-疤痕 发表于 2015-1-8 19:33 | 显示全部楼层

谢谢楼主,学习了
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
520Kelly 发表于 2015-1-8 19:54 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
 楼主| 闪耀 发表于 2015-1-8 20:51 | 显示全部楼层

520Kelly 发表于 2015-1-8 19:54
坐等继续更新下去啊

那格盘大神啊   给个精呗
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
520Kelly 发表于 2015-1-8 20:52 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
 楼主| 闪耀 发表于 2015-1-8 20:55 | 显示全部楼层

520Kelly 发表于 2015-1-8 20:52
给精要admin拍板、我做不了主啊

果然鲨鱼大叔掌握一切
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
520Kelly 发表于 2015-1-8 20:59 | 显示全部楼层

闪耀 发表于 2015-1-8 20:55
果然鲨鱼大叔掌握一切

我们只是可怜的打工仔、给大叔打工的
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
 楼主| 闪耀 发表于 2015-1-8 21:01 | 显示全部楼层

520Kelly 发表于 2015-1-8 20:59
我们只是可怜的打工仔、给大叔打工的

有工资木有啊  这么辛苦   每个帖子都发现了你
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
520Kelly 发表于 2015-1-8 21:04 | 显示全部楼层

闪耀 发表于 2015-1-8 21:01
有工资木有啊  这么辛苦   每个帖子都发现了你

那是必须的、说多了全是泪啊

吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

警告:本站严惩灌水回复,尊重自己从尊重他人开始!

1层
2层
3层
4层
5层
6层
7层
8层
9层
10层

免责声明

吾爱汇编(www.52hb.com)所讨论的技术及相关工具仅限用于研究学习,皆在提高软件产品的安全性,严禁用于不良动机。任何个人、团体、组织不得将其用于非法目的,否则,一切后果自行承担。吾爱汇编不承担任何因为技术滥用所产生的连带责任。吾爱汇编内容源于网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除。如有侵权请邮件或微信与我们联系处理。

站长邮箱:SharkHeng@sina.com
站长QQ:1140549900


QQ|RSS|手机版|小黑屋|帮助|吾爱汇编 ( 京公网安备11011502005403号 , 京ICP备20003498号-6 )|网站地图

Powered by Discuz!

吾爱汇编 www.52hb.com

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