- 3
- 0
- 约1.26万字
- 约 58页
- 2016-11-27 发布于河南
- 举报
Lecture4DataTypes
Dept.of Computer Sci. Tech.,YBU 基本表达式 逗号表达式 (Comma Expression) 运算符 优先级最低的运算符 Category Operator Number of Operands Precedence Associativity Comma? ,? 15 Left to right ? * Dept.of Computer Sci. Tech.,YBU 逗号表达式 (Comma Expression) 表达式格式 运算规则 按从左向右的顺序依次计算表达式E1, E2, …, En的值 En的值是表达式的值 左值性取决于编译器 基本表达式 E1 , E2, …, En (E1, E2, …, En分别为表达式) * Dept.of Computer Sci. Tech.,YBU 逗号表达式 (Comma Expression) 示例 基本表达式 int x, y ; x = 1, y = 2 ; x+1, y += x ; x 内存 y ? ? 1 2 2 1+1 临时空间 + 3 计算结果 被抛弃! 表达式的值 * Dept.of Computer Sci. Tech.,YBU 基本表达式 自增、自减运算【重点、难点】 运算符 有副作用 对自增/自减表达式的求值导致其运算对象(左值,如变量)的值改变 表达式的值与副作用效果都是所需要的 Category Operator Number of Operands Precedence Associativity Postfix? () [] - . ++ - - ? 1 1 Left to right? Unary? ++(自增) - - (自减) 1 2 Right to left? * Dept.of Computer Sci. Tech.,YBU 自增、自减运算【重点、难点】 前缀自增/自减 表达式格式 求值规则: 运算对象Lvalue的值增1/减1 表达式的值为运算对象Lvalue更新后的值 有副作用: 求值过程改变Lvalue的值 左值性取决于编译器 运算对象必须是可进行加/减1操作的左值 基本表达式 ++ Lvalue -- Lvalue * Dept.of Computer Sci. Tech.,YBU 自增、自减运算【重点、难点】 前缀自增/自减求值原理 基本表达式 int x=1; ++ x ; x 内存 1 1+1 2 ++x的值 * Dept.of Computer Sci. Tech.,YBU 自增、自减运算【重点、难点】 后缀自增/自减 表达式格式 求值规则: 运算对象Lvalue的值增1/减1 表达式的值为运算对象Lvalue原来的值 有副作用: 求值过程改变Lvalue的值 值为右值(*Lvalue的值先存放在临时单元中,而该单元是不可访问的) 运算对象必须是可进行加/减1操作的左值 基本表达式 Lvalue++ Lvalue -- * Dept.of Computer Sci. Tech.,YBU 自增、自减运算【重点、难点】 后缀自增/自减求值原理 基本表达式 int x=1; x++ ; x 内存 1 ? 1+1 2 1 临时空间 ? x++的值 * Dept.of Computer Sci. Tech.,YBU 自增、自减运算【重点、难点】 自增/自减运算示例 基本表达式 int x=1, y, z ; y = x++ ; z = ( ++y , x+y ) ; x 内存 y ? z ? 1 1 临时空间 ? x++的值 ? 1+1 2 ? 1 ++y 的值 4 临时空间 ? + ? 4 赋值表达式的值 ? 1+1 2 有几个副作用? * Dept.of Computer Sci. Tech.,YBU 自增、自减运算【重点、难点】 x++或++x的效率比x=x+1高 x++与++x的共同点 副作用相同 x值都增加1 x++与++x的区别 值不同 在表达式中x++表示“先用后加”,++x表示“先加后用” 基本表达式 * Dept.of Computer Sci. Tech.,YBU 自增、自减运算【重点、难点】 要避免使用对人产生歧义的表达式,要使每个表达式的内在含义与外在形式相符 宁肯多使用表达式和语句 合理使用括号 基本表达式 ++x+++++x++---x++ ? * Intelligent Information Processing Lab., Dept.of Computer Sci. Tech.,YBU 基本表达式 Category? Operator Associativity Postfix?
原创力文档

文档评论(0)