- 1、本文档共68页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第2章-数据类型与运算符分析
* 综合举例 2 int a=1,b=2,c,d,e; c=(-a++)+(++b); d=(b--)+(++a)-a; e=(a/(++b))-(b/(--a)); 运行结果: a=2; b=3; c=2; d=3; e=0 * 综合举例3 int a=2,b=3,c,d,e,f; c=(a++ = --b); d=(a= = ++b); e=(a-- != b); f=(++ a b--); c=1 a=3 b=2 d=1 a=3 b=3 e=0 a=2 b=3 f=0 a=3 b=2 运行结果 a=3; b=2; c=1; d=1; e=0; f=0 * 综合举例4 int x=4, y=25, z=2; z=(--y/++x)*z--; 运行结果: z=7 * 综合举例5 int x=y=z=0; ++x||++y++z; int x=y=z=0; ++x++y||++z; int x=y=z=0; ++x++y++z; 运行后x,y,z的值分别为: 1 0 0 1 1 0 1 1 1 * 综合举例6 int a=2; char c=’a’; float f=3.0; a+a*6/f+c%a (af)+5 (a1)*f (a2)?3:2 (a=2)*f (1,2,3)-a =float(2)+float(4.0)+float(1)=7.0f =6 =3.0f =2 =6.0f =1 * * 解释: 1. 在此统一说一下变量说明的格式。 强调先说明后使用的规则。 2. 在解释变量初始化时强调变量必须先赋值后引用。 * 2. 变量定义 变量定义的一般格式: 数据类型说明符 变量列表; 例如:int i, j; long k, m; float x,y; char ch1,ch2; 必须使用合法的标识符作变量名 不能使用关键字为变量命名 * 3. 变量的初始化: 允许在说明变量的时候对变量赋初值。 例如:int a=5, b=10+2; double x=23.568, y ; char ch1=a, ch2=66, ch3=\142; 表示定义变量并对变量存储单元赋值。 错误的初始化: int a=3+b, b=5; float m=n=23.16; 单独赋值: int a; a=14; * 2.5 运算符和表达式 主要内容: 算术运算符和算术表达式 赋值运算符和赋值表达式 关系运算符和关系表达式 逻辑运算符和逻辑表达式 位运算符和位运算表达式 条件运算符和条件表达式 逗号运算符和逗号表达式 其他运算符及其运算 * 运算符的有关概念 作用: 对运算对象完成规定的操作运算 类型: 按运算对象分: 单目、双目、三目 按功能分: 算术、赋值、关系、逻辑 条件、逗号、位、其他 * 运算符的优先级和结合性 优先级 指各种运算符号的运算优先顺序 例如:算术运算优先于关系运算 算术运算中先 * / 后 + - 结合性 指运算符号和运算对象的结合方向 分为:从左向右(左结合)和从右向左(右结合) 例如:算术运算符为左结合 a-b+4 赋值运算符为右结合 a= b = 5 ( C语言规定见教材 P350附录II) * 本章涉及的运算符 + - * / % ++ -- + - = += -= *= /= %= = |= ^= = = = = == != || ! | ^ ~ ?: , sizeof (数据类型标识符) 类型 种类 算术运算符 赋值运算符 关系运算符 逻辑运算符 位运算符 条件运算符 逗号运算符 其他运算符 * 表达式的有关概念 什么是表达式 由运算符将运算对象连接成的式子,它描述了一个具体的求值运算过程。 计算表达式的值 按照运算符的运算规则求值 求值时注意运算符的优先级和结合性 表达式值的类型 自动转换 强制转换 * 例如: 表达式: 150+b*2-12.456 b=(++a)-2 a /= a *= (a = 2) f=abc --a ||++bc++ max=ab ? a : b a=3,a+=3,a*a 1/(float)
文档评论(0)