- 1、本文档共36页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言程序设计---第4章 假设我们有一个变量k的值为5: y= ++k+10; y= k++ +10; y=--k +10; y=k-- +10; y=(k+=k++); 4.5 左值和右值 左值表达式又简称为左值。在程序中,具有可存储地址值的表达式被称为左值表达式。之所以取名为左值表达式,是因为这种表达式可以出现在赋值运算符的左边。例如: a = a+1 只能出现在赋值号右边的表达式为右值表达式,简称右值。右值是一个(表达式的)值。下面这个表达式是非法的: a+1 = a 分析下面这个例子: int a, *p; p = a; *p = *p+10; * 第4章 运算符和表达式 C语言运算符之多, 在高级语言中是少见的。但运算符的多样性和表达式的灵活性对于一个C语言的初学者来说很可能会成为机关重重的陷阱。 4.1 概述 4.1.1 C语言运算符的种类 1. ( )[ ] - . 左结合 2. ! ~(位非) ++ -- + - * (类型) sizeof 右结合 3. * / % 左结合 4. + - 左结合 5. (位左移) (位右移) 左结合 6. = = 左结合 7. == != 左结合 8. (位与) 左结合 9. ^ (位异或) 左结合 10. | (位异或) 左结合 11. 左结合 12. || 左结合 13. ? : 右结合 14. = += -= *= /= = ^= |= = =(复合位运算) 右结合 15. , 左结合 4.1.2 C语言运算符的特性 优先级 与代数学中的规则是相同的 结合性 左结合性与右结合性 结合性确定了在相同优先级运算符连续出现的情况下的计算顺序 短路特性 逻辑与 逻辑或|| 条件运算?: 逗号, 能在一定条件下终止表达式中的其它运算 4.1.3 C语言表达式的特性 表达式应是可求值的,不可求值的表达式被认为是一个错误。 对表达式的计算将返回一个具有确定类型的值。 在满足运算符的优先级、结合律及短路特性的前提下,系统有权决定各运算分量的求值顺序,即表达式各运算分量的求值顺序是不可预知的。 C语言表达式可能带有副作用。如果一个表达式在求值中不仅求出一个值,还改变了执行环境的状态,就说它带有副作用。 对带有副作用的表达式,不同计算顺序将导致计算结果的不确定性。 因此,如果给出的表达式的计算结果与求值顺序有关,其后果可能是很严重的。系统不会为你分担任何责任。 在同一个算术表达式中,如果参与运算的两个运算对象的数据类型不一致时,系统将自动把其中的一个进行类型转换,使两个运算对象的类型一致后再进行运算。自动转换的规则是:按“短向长靠拢”的原则进行转换。所谓“短向长靠拢”是指:占用存储空间较短的数据对象向占用存储空间较长的数据对象转换。 4.2 基本运算 4.2.1 赋值运算 符号“=”被预定义为赋值运算符。赋值表达式的一个例子: x = y+10 赋值表达式的求解过程是:先计算赋值运算右操作数的值,然后将右操作数的值存放到左操作数指定的存储位
您可能关注的文档
最近下载
- 年产8万吨聚甲醛工艺的初步设计.docx
- 3D3S 基本操作手册.pdf
- 2019新疆生产建设兵团中考化学真题.doc VIP
- 8.铁路工程预算定额 路基工程宣贯讲义.ppt
- 房地产市场报告 -天朗2024年报【在时代洪流的弄潮中 尽显从容-把脉逆周期调解下大的北京房地产市场】.docx
- 【人教部编版】二年级上册语文课件:4《田家四季歌》第一课时(共27张PPT).pptx
- 年产25万吨合成氨合成工段工艺设计.docx
- 2023徐州市八年级下册期末物理试卷含答案 .pdf
- 毕业设计(论文)-反铲式挖掘机工作装置结构设计.doc
- 工程训练(广东工业大学)智慧树知到期末考试答案章节答案2024年广东工业大学.docx
文档评论(0)