...b,c,d的值均为0。执行(m=a==b)||(n=c==d)后,m,n的值各是()_百度知 ...

发布网友 发布时间:2024-10-24 07:21

我来回答

4个回答

热心网友 时间:2024-11-05 20:22

程序首先执行a==b,因为a==b为真,所以值为1(如果为假,则值为0),然后把1赋给m,因此m的值变为1。也就是说完成(m=a==b)的整个执行过程结果为真。
"||"是逻辑或运算符,因为完成“(m=a==b)为真”这步后已经符合||的要求,所以后面的(n=c==d)根本不用执行。(即:执行完“(m=a==b)为真”后,原式可变为1||(n=c==d),因为1为真,所以后面的(n=c==d)无论是真是假都无所谓,因此系统不会执行下去。也就是说n的值不变。)

热心网友 时间:2024-11-05 20:19

1、首先(m=a==b)与||与(n=c==d)运算符进行比较,括号优先级最高。同 等优先级遵从从左到右的原则,所以先算(m=a==b)
2、=为赋值运算符,==为关系运算符,关系运算符高于赋值运算符,所 以先a==b,a==b为真,返回值为1,赋给m,所以m=1
3、由于是||运算符,结果已经为真了,所以后面的(n=c==d)并没有执行,所以n=0

热心网友 时间:2024-11-05 20:18

因为是或 ,||前a==b是真,将1赋给m,if已经为真,所以||后语句并没有执行,n还是原来的0

热心网友 时间:2024-11-05 20:21

&&运算符的特点是,当左值和右值中有一个为假,则整个&&表达式的值为假,
而且&&是左结合的,也就是从左向右运算,
所以一旦左边的表达式为假,则整个&&表达式的值为假,不会再处理右表达式,
这个也叫做&&短路。
m、n、b、a、c、d的值均为一,所以a>b为假,m=a>b=0,所以不会再处理右表达式n=c>b,
所以n的值不变

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com