3.4 逗号表达式-高二《新概念C语言能力教程》同步教学课件 (电工版2020)

2023-06-12
| 23页
| 122人阅读
| 0人下载
精品

内容正文:

第3章表达式 第3章表达式 01表达式概述 02赋值表达式 03算术表达式 04强制类型转换及自增自减 05逗号表达式 06典型例题 2 逗号表达式 这节课,我们讨论逗号表达式。 3 逗号操作符(,) 逗号操作符优先级最低,左结合。逗号表达式的一般形式为:子表达式1, 子表达式2, ……, 子表达式n。 逗号表达式求值的过程是自左向右,先求值表达式1,再求值表达式2,……,最后求值表达式n。 表达式n的值和类型也是整个逗号表达式的值和类型。 逗号操作符优先级最低,左结合。逗号表达式的一般形式为:子表达式1, 子表达式2, ……, 子表达式n。 逗号表达式求值的过程是自左向右,先求值表达式1,再求值表达式2,……,最后求值表达式n。 表达式n的值和类型也是整个逗号表达式的值和类型。 4 例3-14 分析下面两个表达式 1. b = (a = 3 * 5, a * 4) 求值顺序为(b = ((a = (3 * 5)), (a * 4))),赋值表达式 (b = ((a = (3 * 5)), (a * 4)))⇒(b = ((a = 15), (a * 4)))⇒(b = (15, (a * 4))) ⇒(b = (15, 60))⇒b = 60⇒表达式的值为60,int。 2. b = a = 3 * 5, a * 4 求值顺序为(b = (a = (3 * 5))), (a * 4),逗号表达式。 (b = (a = (3 * 5))), (a * 4)⇒(b = (a = 15)), (a * 4)⇒(b = 15), (a * 4) ⇒15, (a * 4)⇒15, (15 * 4)⇒15, 60⇒表达式的值为60,int。 表达式应易于理解,可读性好。这两个表达式是错误的示范。 表达式b = (a = 3 * 5, a * 4)求值时先执行圆括号里面的逗号表达式,自左向右依次执行,先执行3 * 5,再执行a = 15,接着执行a * 4,逗号表达式的值为60。 赋值表达式b = 60最后执行,因此,这是一个赋值表达式。最后执行什么操作,整个表达式就是什么表达式。 这个表达式的作用有两个,将变量a赋值为15,将变量b赋值为60。这个表达式不简洁,可读性不好。 表达式b = a = 3 * 5, a * 4是逗号表达式,自左向右依次执行每个子表达式。表达式最后的值为60。这个表达式的作用,是将变量a和b赋值为15。这个表达式中 a * 4没有作用,纯属多余。 这两个表达式仅仅用于求值过程分析,可读性太差,没有实用价值。 5 逗号表达式的作用 逗号表达式可用于将多条简单的语句合并成一条语句。 两条语句i = 0;和语句j = ++i;可合并成一条语句i = 0, j = ++i;。 由于逗号表达式自左向右依次对子表达式求值,合并后的一条语句与合并之前的两条语句在执行次序上完全相同。 表达式i = 0, j = ++i中,++操作符的优先级最高,为何不先执行? 逗号表达式的求值过程不符合优先级高的操作符先执行的规则,这是因为表达式求值时首先遵循序列点规则。 逗号表达式可用于将多条简单的语句合并成一条语句。 两条语句i = 0;和语句j = ++i;可合并成一条语句i = 0,j = ++i;。 由于逗号表达式自左向右依次对子表达式求值,合并后的一条语句与合并之前的两条语句在执行次序上完全相同。 表达式i = 0,j = ++i中,++操作符的优先级最高,为何不先执行? 逗号表达式的求值过程不符合优先级高的操作符先执行的规则,这是因为表达式求值时首先遵循序列点规则。 6 序列点规则 表达式求值时,先考虑序列点,再考虑优先级和结合性。 特定的操作符有序列点,有序列点的操作符执行时,左操作数先于右操作数求值。 表达式3 * 2 + 3 - 2的求值顺序为(((3 * 2) + 3) - 2)。+操作符的左边相邻的操作符是*,优先级高,因此,+操作符的左操作数是子表达式3 * 2;+操作符的右边相邻的操作符是-,两者优先级相同,但左结合,因此,+操作符的右操作数是3。通过确定求值顺序可以清晰地看出每个操作符的操作数。 表达式求值时,先考虑序列点,再考虑优先级和结合性。 特定的操作符有序列点,有序列点的操作符执行时,左操作数先于右操作数求值。 表达式3 * 2 + 3 - 2的求值顺序为(((3 * 2) + 3) - 2)。+操作符的左边相邻的操作符是*,优先级高,因此,+操作符的左操作数是子表达式3 * 2;+操作符的右边相邻的操作符是-,两者优先级相同,但左结合,因此,+操作符的右操作数是3。通过确定求值顺序可以清晰地看出每个操作符的操作数。 操作符的操作数与其相邻的操作符的优先级和结合性有关。 7 逗号操作符有序列点

资源预览图

3.4 逗号表达式-高二《新概念C语言能力教程》同步教学课件 (电工版2020)
1
3.4 逗号表达式-高二《新概念C语言能力教程》同步教学课件 (电工版2020)
2
3.4 逗号表达式-高二《新概念C语言能力教程》同步教学课件 (电工版2020)
3
3.4 逗号表达式-高二《新概念C语言能力教程》同步教学课件 (电工版2020)
4
3.4 逗号表达式-高二《新概念C语言能力教程》同步教学课件 (电工版2020)
5
3.4 逗号表达式-高二《新概念C语言能力教程》同步教学课件 (电工版2020)
6
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。