文档详情

NO04C语言程序设计(第三章).ppt

发布:2018-06-18约3.5千字共26页下载文档
文本预览下载声明
C语言程序设计 娄底师专计算机系 羊四清 * 第四讲 运算符: 运算的符号表示。 C语言有丰富的运算功能,先简述之 C运算符 1. 算术运算符 +, –, ?, /, % , 等 3. 逻辑运算符 !, , || 2. 关系运算符 , , = =, =, =, != §3.9 运算符与表达式 4. 位运算符 , , ~, |, ^, . 5. 赋值运算符 = 等 6. 条件运算符 ? 等 7. 逗号运算符 , 8. 指针运算符 *, 11. 分量运算符 ?, ?, 12. 下标运算符 [ ] 13. 其它运算符 如函数的调用( ) 9. 求字节数运算符 size of 10. 强制类型转换运算符 (类型) 3.8 算术运算符和算术表达式 一、基本算术运算符 + 加法 正值 3+6, +3 – 减法 负值 6– 4, –5 ? 乘法 3?8 / 除法 8 / 5 % 求余 7 % 4 的值为3 注: ? 两个整型数据相除 (结果为整,一般向零靠拢)。 –5/ 3 ? – 1 ?“ /” 中,有一个 float, 则结果为double型,使用时千万注意 int / int 出现数据丢失。 二、算术表达式及算术运算符的优先级与结合性 运算对象: 常量、变量、函数等 优先级: ( ), ?, /, %, +, – 结合性: 同一优先级, 自左向右,为左结合性,反之为右结合性。 例: a ? b / c – 1.5 + a–d ?e 当类型不同的数据进行运算时,按§2.4介绍的类型转换。 算术表达式: 用算术运行运算符和括号将运算对象连接起来,且符合C语法规则的式子。 三、可利用强制类型转换运算符将一个算术表达式转换为所需类型 形式: (类型名) (表达式) 例如: (double) a 将a转换为double (int) (x+y) 将x+y转换为int (float) (5%3) 将5%3转换为float 注: 1. 括号不能省略。 如: intx 会理解为变量intx. 2. 转换后的类型数据由系统分配一个中间变量存放,而原变量类型不变。 又如: (int) (x+y) 若省略: (int)x+y会变成将x转成整型. 如 float x; 则(int)x 表示x本身仍为实型,而(int)x由一个中间变量(整)存放x的整数部分。 四、自增,自减运算符 设有int i = 3; + + 自增1 – – 自减1 则: + +i, i++都会使i变为4,但有区别: ++i: 先使i值+1,再使用i值; i++: 先使用i值,再使i值+1. j= ++i; j=4, i=4. (i=i+1; j=i;) j=i++; j=3, i=4. (j=i; i=i+1) 同理: – –i, i – –,均使i值–1,但: 又如: printf (i=%d\n, i++); 结果: i=3 若: printf (i=%d\n, ++i); 结果: i=4 – – i: 先使i值–1,再使用i值; i – –: 先使用i值,再使i值–1 i=3; 几点注意: 1. ++和– –运算法只能用于变量,不得用于常量和表达式. 2. ++, – –,的结合性为从右至左,而一般算术运算符为从左至右。如: 如 5+ +, (a+b)+ +均为不合法. –i++ ;因为 –和+ +为同一优先级. –i++相当于–(i++) 若 i=3, 则结果为–3, i为4. ++, – –主要用于循环变量自增或自减。 1. 要慎用++、 – –运算符。 五、有关表达式使用中的问题说明 则:先对i进行3次自加,为6,然后三个i相加为18,而i为6。 如: 表达式(i++)+(i++)+(i++) (i=3) 一般认为: 从左至右: 3+4+5=12,i?6. 但Turbo C. MSC 都是先取三个原值 相加: i+i+i=9 i?6 如果表达式数为: k=(++i)+(++i)+(++i) 2. 在表达式中,有的运算符为一个字符,有的为两个字符。 3. 在函数调用时,如: 一般地: 自左至右尽可能多地将若干字符组成一个运算符。 例: i+++j, 究竟理解为
显示全部
相似文档