【摘要】:完成本任务所用到的主要知识点:运算符的使用优先级与结合性int a=3,b=5,c=7;求表达式a
完成本任务所用到的主要知识点:
➢运算符的使用
➢优先级与结合性
int a=3,b=5,c=7;求表达式a<b && b<c||c<a的值。请写出表达式执行的详细步骤。
对于这种组合表达式,在分析的时候我们应该抓住两个关键的概念:优先级和结合性。
对于这个表达式,先从运算符的类型来看共有两种:关系运算符和逻辑运算符。然而所有的关系运算符的优先级比逻辑运算符高。
因为关系运算符的优先级高于逻辑运算符,所以此表达式也等价于(a<b)&&(b<c)||(c<a)。而“&&”符号的优先级高于“||”。所以这个表达式也等价于((a<b)&&(b<c))||(c<a)。我们应该先看(a<b)&&(b<c)的结果。
(a<b)&&(b<c),先计算括号里的表达式。首先a<b即3<5,成立;b<c即5<7,成立;所以(a<b)&&(b<c)也成立,a<b&&b<c||c<a整个表达式的值也成立。(www.xing528.com)
而在C语言中逻辑表达式的值要么为0要么为1(非0),所以如果逻辑表达式成立,其表达式的值就为1,不成立其表达式的值就为0。
综上,表达式a<b&&b<c||c<a的值为1。
程序运行结果如图上机3.2所示。
图上机3.2 求表达式的值
优先级决定了哪些表达式的值先被执行,哪些表达式的值后被执行。通常情况下,优先级高的表达式的值先被执行出来后,然后用执行的结果再去执行那些优先级低的表达式。所以如果我们将优先级弄反了,执行出来的结果是错误的。
对于二目表达式,结合性决定了左边的表达式还是右边的表达式先被执行,先被执行出来的结果再用来评估另外的表达式。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。