C语言第2章-数据类型运算符与表达式.ppt

  1. 1、本文档共98页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
习题2.4(8):输出结果和变量a的值? int a=3; printf(%d,-a++); a 3 similar to printf(%d,-a); a = a + 1; 后缀(Postfix)增一和减一运算符 4 增一和减一运算符 良好的程序设计风格提倡:在一行语句中,一个变量只能出现一次增1或者减1运算 过多的增1和减1运算混合,不仅可读性差,而且因为编译器实现的方法不同,导致不同编译器产生不同的运行结果 位操作运算符 按位与运算 | 按位或运算 ^ 按位异或运算 按位左移运算 按位右移运算 ~ 按位求反 位操作运算符 逻辑运算与位运算的不同 main() { int x=12, y=8; printf(\n%5d%5d%5d, !x, x||y, xy); printf(\n%5u%5d%5d, ~x, x|y, xy); printf(\n%5d%5d%5d\n, ~x, x|y, xy); } 0 1 1 65523 12 8 -13 12 8 逻辑非的结果 不是按位取反 0000 0000 0000 1100 x 1111 1111 1111 0011 ~x 1000 0000 0000 1100 ~x的反码 ~x的反码加1 1000 0000 0000 1101 0000 0000 0000 1100 x 0000 0000 0000 1000 y 0000 0000 0000 1100 x|y 0000 0000 0000 1000 xy 正数的补码 与其原码相同, 负数的补码为 其反码加1 优先级与结合性 ( ) [ ] - . ! ~ ++ -- + - * (类型) sizeof * / % + - = = == != ^ | || ? : = += -= *= /= %= = ^= |= = = , 能背下优先级表的人凤毛麟角 用括号来控制运算顺序,更直观、方便,并减少出错的概率 多数为左结合,少数为右结合: 一元运算符 赋值运算符 条件运算符 本章知识点 标识符的命名规则 数据类型 变量(声明、赋值、初始化) 常量 运算符及其优先级和结合性 算术 赋值 类型强转 关系 逻辑 增一/减一 位运算 sizeof 作业 习题2.1,2.2,2.3 命名风格的选择主要依照习惯。比如在Unix/Linux下,variable_name的形式就多见,而在Windows下,广泛采用的是基于VariableName形式的匈牙利命名法。Java语言里常用variableName形式。 为什么是1024而不是更容易计算的1000? 为什么是8而不是更直观的10? 这将在计算机原理课解答。 未来的趋势是任何字符,无论英文、中文还是其它文字,都用两个字节来表示。这种编码叫做UNICODE 教材P229页有对各种类型变量取值范围的描述。在程序中最好的确定范围的方法就是使用这些宏。 对此表的详细说明见教材P229页。更深入的内容将在计算机原理课讲述 对此表的详细说明见教材P229页。更深入的内容将在计算机原理课讲述 算术表达式 (Arithmetic Expression) An expression may contain 2 or more arithmetic operators Main issue: 运算顺序 ORDER OF PRECEDENCE 优先级 Examples: 5 + 6 5 + 6 * 2 2.5 + 6 – 2 * 2 12 / 6.0 – 2 * 2 = 11 = 22 or 17? = ?? = ?? = 17 算术表达式 (Arithmetic Expression) Wait a minute 算术表达式 (Arithmetic Expression) 优先级(Order of Precedence) High: * / % Low: + - All operators have a precedence level. 不同优先级时的运算顺序: High precedence level operators are evaluated before lower ones. 相同优先级时的运算顺序: Operators of the same precedence level are evaluated from left to right(左结合) Example: ?? 4 8.5 2

文档评论(0)

jyr0221 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档