4.7 运算符与表达式(课件)-《 C语言程序设计》同步教学(电子工业出版社)

2024-08-11
| 16页
| 39人阅读
| 5人下载
普通

内容正文:

第4章 C语言基本语法 2024年8月11日 内容概述 C语言基本数据类型 整型、实型、字符型的常量形式及变量定义 整型、实型、字符型变量的格式化输入输出 C语言的类型转换 运算符及表达式 2024年8月11日 教学目标 掌握数据类型的概念,了解C语言能够处理的数据类型。 掌握各种类型常量的特点及表示形式。 掌握各种类型变量的定义及使用 掌握数据的输入输出的基本方法。 掌握C语言的运算符、表达式及运用方法。 2024年8月11日 4.7 运算符与表达式 在第二章中,我们已经介绍了: 算术运算符:+、-、*、/、%; 关系运算符:>、<、==、>=、<=、!=; 逻辑运算符: !、 &&、 ||。 C语言中常用的运算符还有自增自减运算符、条件运算符、逗号运算符等。 2024年8月11日 1自增、自减运算符及其表达式 1 形式 ++i, --i 使用i之前,先使i的值加/减1 i++, i-- 使用i之后,再使i的值加/减1 2 说明 ++i和--i的值是加/减1之后i的值 i++和i--的值是加/减1之前i的值 ++和--只能用于变量,不能用于常量和表达式 ++和--的结合方向是“自右向左” 2024年8月11日 (1) 单独使用时 ++i; 等 价 i++; 等 价 i=i+1; (2) j=++i; (3) j=i++; 若i的初始值为3 i=4; j=4; i=4; j=3; 2024年8月11日 #include <stdio.h> #include <stdio.h> void main() { int i; i=8; printf("%5d",++i); printf("%5d ",--i); printf("%5d ",i++); printf("%5d",i--); printf("%5d",-i++); printf("%5d ",-i--); } 【例4.9】运行以下程序并分析程序运行结果。 2024年8月11日 ++、--运算符应用于逻辑表达式“a&&b&&c”和“a||b||c”时需格外注意 例如:若 a=0; b=1; c=2; 执行 d=a++&&b++&&- -c;之,a,b,c,d的值各是什么? 分析:因变量a先参加表达式的运算,后自增,所以参加表达式运算的值是0,所以整个表达式的值是0,即d=0,a自增变为1,b++和—c没有得到执行,所以b=1,c=2。即运算结果: d=0,a=1,b=1,c=2 2024年8月11日 若 a=0; b=1; c=2; 执行 d=a++||b++||- -c; 后a,b,c,d的值各是什么? 分析:因变量a先参加表达式的运算,后自增,所以第一个||前的表达式值为0(假),需要运算第二个表达式即b++,由于b=1,所以整个表达式的值为1,即d=1,b自增后变为2,第三个表达式—c没有得到执行,所以c=2。即运算结果: d=1,a=1,b=2,c=2。 2024年8月11日 1.条件运算符 条件运算符由问号“?”和比例号“:”组成,用于连接三个运算对象,是C语言中唯一的一个三目运算符。 2.条件表达式 一般形式: <表达式1> ? <表达式2>:<表达式3> 求值规则和表达式的值: 求解 表达式1 真(非0) 求解 表达式2 假(0) 求解 表达式3 表达式 的值 2 条件运算符与条件表达式 2024年8月11日 优先级:逻辑 > 条件 > 赋值 结合性:自右至左 若有定义a=2、b=3、c=4,求下列表达式的值。 (1)m=a>b?a:b (2)m=a>b?a:b>c?b:c (1)式的求解过程:先计算a>b值,因为a>b的结果为假,所以把b的值作为整个表达式的值,即为3。 (2)式的求解过程:先计算b>c?b:c,结果为4,再计算m=a>b?a:4,结果为4,则m的值为4,整个表达式的值也为4。 2024年8月11日 3. 逗号运算符和逗号表达式 逗号运算符 C语言中逗号“,”也是一种运算符,称为逗号运算符。其功能是将若干个表达式连接起来。 逗号表达式 用逗号运算符将各种类型的表达式连接起来的式子称为逗号表达式。 一般形式: 表达式1,表达式2,…,表达式n 其求值过程是分别求表达式1、表达式2、…、表达式n值,并以表达式n的值作为整个逗号表达式的值。 逗号运算符是所有运算符中级别最低的。 2024年8月11日 例如 a=4*6,a+5 整个逗号表达式的值为29。 注意 一个逗号表达式又可以与另一个表达式组成一个新的逗号表达式。 例如: (a=4*6,a+5),a+6 整个表达式的值为30。 2024年8月11日 如: int x,y=7; float z=4; 表达式x=(y=y+6,y/z); 的值是多少 整个表达式的值为3。先计算逗号表达式中第一个表达式的值即y=y+6,得到y=13,接着计算逗号表达式中第二个表达式的值y/z,得到3.25,这也是整个逗号表达式的值,3.25赋值给整型变量x时会自动进行类型转换,即整数3赋值给变量x。 2024年8月11日 3 .复合赋值运算符 *=、/=、%=、+=、-=、<<=、>>=、&=、Λ=、¦= 复合运算符是一个运算符,但功能上,是两个运算符功能的组合。 如:a+=b 相当于 a=a+b a*=b+c 相当于 a=a*(b+c) a=2; a+=a*=a; 最好不要这样用!! 4.复合赋值表达式 4.复合赋值运算符及表达式 2024年8月11日 5.运算符优先级 优先级顺序 运算符 1 括号,如()和[ ] 2 一元运算符,如++、--和! 3 算术运算符,如*、/、%、+和- 4 关系运算符,如>、<、>=、<=、==、!= 5 逻辑运算符,如&、^、|、&&、|| 6 条件运算符和赋值运算符,如?、:、=、+=、-=、*=和/= $$

资源预览图

4.7  运算符与表达式(课件)-《 C语言程序设计》同步教学(电子工业出版社)
1
4.7  运算符与表达式(课件)-《 C语言程序设计》同步教学(电子工业出版社)
2
4.7  运算符与表达式(课件)-《 C语言程序设计》同步教学(电子工业出版社)
3
4.7  运算符与表达式(课件)-《 C语言程序设计》同步教学(电子工业出版社)
4
4.7  运算符与表达式(课件)-《 C语言程序设计》同步教学(电子工业出版社)
5
4.7  运算符与表达式(课件)-《 C语言程序设计》同步教学(电子工业出版社)
6
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。