C语言_第4章.ppt

上传人:少林足球 文档编号:4124356 上传时间:2019-10-19 格式:PPT 页数:32 大小:2.79MB
返回 下载 相关 举报
C语言_第4章.ppt_第1页
第1页 / 共32页
C语言_第4章.ppt_第2页
第2页 / 共32页
C语言_第4章.ppt_第3页
第3页 / 共32页
C语言_第4章.ppt_第4页
第4页 / 共32页
C语言_第4章.ppt_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《C语言_第4章.ppt》由会员分享,可在线阅读,更多相关《C语言_第4章.ppt(32页珍藏版)》请在三一文库上搜索。

1、第四章 运算符和表达式,第四章 运算符和表达式,4.1 表达式 4.2 赋值运算符与赋值表达式 4.3 算术运算符与算术表达式 4.4 关系运算符与关系表达式 4.5 逻辑运算符与逻辑表达式 4.6 位逻辑运算符与位逻辑表达式 4.7 逗号运算符与逗号表达式 4.8 复合赋值运算符 4.9 综合运用 4.10 实战练习,本章学习内容,4.1 表达式,从表达式的运算符个数来看: 简单表达式 复杂表达式,从表达式种类来看: 赋值表达式、算术表达式、关系表达式、逻辑表达式 位逻辑表达式、条件表达式、逗号表达式和复合表达式,4.1 表达式,#include int main() int var1, v

2、ar2, var3; var1 = 10; var2 = 5; printf(“The first number is:%dn”, var1); printf(“The second number is:%dn”, var2); var3 = var1 - 5;,printf(“The first number sub 5 is:%dn”, var3); var3 = var2 + 5; printf(“The second number add 5 is:%dn”, var3); var3 = var1 * var2; printf(“The result of first times se

3、cond is:%dn”, var3); return 0; ,4.1 表达式,注意: 表达式返回的结果值是有类型的,隐含的数据类型取决于组成表达式的变量和常量的类型 表达式的返回值具有逻辑特性 逗号可以作为分隔符,也可以用在表达式中,4.2 赋值运算符与赋值表达式,使用常量为变量赋初值 类型说明符 变量名 = 常量; 例如:int iCount = 10; 使用表达式为变量赋初值 类型说明符 变量名 = 表达式; 例如:int iCount = 3 + 7;,4.2.1 变量赋初值 声明一个变量时,可以为其赋一个初值,就是将一个常量或者一个表达式的结果赋值给一个变量,4.2 赋值运算符与赋值

4、表达式,注意: 赋值运算符左边的变量称为左值,右边的常量或表达式称为右值 单个常量、变量、函数都可以看作是表达式,由于常量无法被赋值,所以不是所有的表达式都可以被作为左值使用 在声明变量时可以直接为其赋值,也可以在声明变量后,再进行变量的赋值操作,4.2 赋值运算符与赋值表达式,#include int main() int iPrice = 10; int iCount; int iValue; iCount = 20; iValue = iCount * iPrice; printf(“%d,%d,%dn”, iPrice, iCount, iValue); ,4.2 赋值运算符与赋值表达

5、式,4.2.2 自动类型转换 (1)参与运算的运算量类型不同 (2)赋值运算中,赋值运算符两边的数据类型不同 (3)整型数赋给实型 (4)整型数赋给长整型,4.2 赋值运算符与赋值表达式,4.2.3 强制类型转换,强制类型转换是通过类型转换运算来实现的,一般形式为: (类型说明符) (表达式); 即把表达式的运算结果强制转换成类型说明符所表示的类型,4.2 赋值运算符与赋值表达式,#include int main() char ch; int i; float k = 32768; ch = (char)k; i = (int)k; printf(“%d,%d,%fn”, ch, I, k)

6、; ,4.3 算术运算符与算术表达式,4.3.1 算术运算符,4.3 算术运算符与算术表达式,4.3.2 算术表达式 使用算术运算符的表达式,称为算术表达式,例如: 3 + 5; a - b; x * y;,4.3 算术运算符与算术表达式,结合性: 优先级相同的运算符,自左向右运算 -左结合性 优先级相同的运算符,自右向左运算 -右结合性 算术运算符在优先级相同时,具有左结合性,4.3.3 优先级与结合性,优先级: 优先级高的运算符先进行运算 单目运算符的优先级高于双目运算符 双目运算符中,*、/、%的优先级高于+、-,括号可以改变表达式的运算优先级和结合性,4.3 算术运算符与算术表达式,4

7、.3.4 自增/自减运算符,+i; /*相当于i=i+1,i先执行自增1,再参与其他运算*/ -i; /*相当于i=i-1,i先执行自减1,再参与其他运算*/ i+; /*相当于i=i+1,i参与运算后,i再执行自增1*/ i-; /*相当于i=i-1,i参与运算后,i再执行自减1*/,4.3 算术运算符与算术表达式,#include int main() int a, b, c, d; a = 100; b = 100; c = +a; d = b+; printf(“a=%d, b=%d, c=%d, d=%dn”, a, b, c, d); a = 100; b = 100; c = -

8、a; d = b-; printf(“a=%d, b=%d, c=%d, d=%dn”, a, b, c, d); return 0; ,4.4 关系运算符与关系表达式,4.4.1 关系运算符,4.4 关系运算符与关系表达式,用关系运算符将两个C语言的表达式连接起来的式子称为关系表达式 关系表达式中,使用关系运算符对两个运算数的大小进行比较,返回一个真值或假值,其中真值为1,表示关系成立;假值为0,表示关系不成立 例如:x = 3, y = 4, z = 2, 则: x-y z的结果成立,整个表达式(x-yz)的值为1 x+z=y的结果不成立,整个表达式(x+z=y)的值为0,4.4.2 关系

9、表达式,4.4 关系运算符与关系表达式,关系运算符“=”表示的大于或等于,两个条件满足其一,关系就成立;=同理 关系运算符“=”表示等于关系,不要与赋值运算符“=”混淆 if (a = 10) /*错误,该条件始终成立*/ 语句块1; ,注意,4.4 关系运算符与关系表达式,(1)、=、=、=优先级高于=、!= (3)关系运算符具有左结合性,if (a = b != 100) 语句块 ,if (a = b) != 100) 语句块 ,4.4.3 优先级与结合性,4.5 逻辑运算符与逻辑表达式,逻辑与运算符&、逻辑或运算符|、逻辑非运算符!,4.5.1 逻辑运算符,4.5 逻辑运算符与逻辑表达式

10、,由逻辑运算符连接起来的表达式称为逻辑表达式 逻辑表达式的值只有两个1和0,1表示结果为真,0表示结果为假 例如: result = a /*a为真时,result为真,否则为假*/,4.5.2 逻辑表达式,4.5 逻辑运算符与逻辑表达式,优先级:由下到上,优先级越来越高,4.5.3 优先级与结合性,4.5 逻辑运算符与逻辑表达式,结合性: 逻辑非运算符“!”具有右结合性 逻辑与&和逻辑或|具有左结合性,例如: a b & c d 等价于 (a b) & (c d) !a = c | d c | x y c) | (x - y) z),4.6 位逻辑运算符与位逻辑表达式,4.6.1 位逻辑运算

11、符,4.6 位逻辑运算符与位逻辑表达式,由位逻辑运算符构成的表达式称为位逻辑表达式 位运算符只能用于整型或字符型数据 优先级:从高到低是:、&、| 结合性:按位取反运算符具有右结合性;其他左结合性,4.6.2 位逻辑表达式,4.7 逗号运算符与逗号表达式,例如: a = 2, 51, 4+3, 6*9; /*a的值为2*/ a = (2, 51, 4+3, 6*9); /*a的值为54*/,一般形式: 表达式1,表达式2,表达式n;,求解过程: 先求解表达式1,再求解表达式2,一直求解表达式n,最终整个表达式的值就是表达式n的值,逗号运算符的优先级是所有运算符中最低的,4.8 复合赋值运算符,一般形式: 变量名 复合赋值运算符 表达式; 等价于: 变量名 = 变量名 双目运算符 表达式; 例如: a += 5 等价于 a = a + 5; x *= y + z 等价于 x = x * (y + z),4.9 综合运用,4.9 综合运用,4.10 实战练习,使用复合运算符计算a+=a*=a/=a-10 定义一个变量并初始化为10,分别输出其前置自增、前置自减、后置自增、后置自减运算后的结果 书中例4.12重新输入x的值小于a,输出结果,并手动分析计算两个复合表达式,END,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1