int a=1,b=2,c=3,d=4,m=2,n=2; 执行(m=a>b)&&(n=c>d) n值是多少
时间: 2023-08-19 14:05:02 浏览: 110
根据运算符优先级,比较运算符 `>` 的优先级高于赋值运算符 `=`,逻辑与运算符 `&&` 的优先级又高于赋值运算符 `=`,因此先计算 `a > b` 和 `c > d` 的值,然后执行赋值运算符 `=`,最后执行逻辑与运算符 `&&`。
因为 `a` 的值为 `1`,`b` 的值为 `2`,所以 `a > b` 的值为 `false`,即 `0`。因为 `c` 的值为 `3`,`d` 的值为 `4`,所以 `c > d` 的值也为 `false`,即 `0`。
然后,执行赋值运算符 `m=a>b`,将 `0` 赋值给变量 `m`,执行赋值运算符 `n=c>d`,将 `0` 赋值给变量 `n`。
最后,执行逻辑与运算符 `&&`,因为 `m` 的值为 `0`,所以整个表达式的值为 `0`。
因此,`n` 的值是 `0`。
相关问题
int a=1,b=2,c=3,d=4,m=2,n=2; (m=a>b)&&(n=c>d) n值是多少
表达式 `(m=a>b) && (n=c>d)` 中包含了两个运算符:赋值运算符 `=` 和逻辑与运算符 `&&`。
首先,根据 C 语言运算符优先级,比较运算符 `>` 的优先级高于赋值运算符 `=`,因此先计算 `a > b` 和 `c > d` 的值。
因为 `a` 的值为 `1`,`b` 的值为 `2`,所以 `a > b` 的值为 `false`,即 `0`。因为 `c` 的值为 `3`,`d` 的值为 `4`,所以 `c > d` 的值也为 `false`,即 `0`。
然后,执行赋值运算符 `m=a>b` 和 `n=c>d`。因为 `a > b` 的值为 `0`,所以将 `0` 赋值给变量 `m`,因为 `c > d` 的值为 `0`,所以将 `0` 赋值给变量 `n`。
最后,执行逻辑与运算符 `&&`,因为 `m` 的值为 `0`,所以不需要再计算 `n=c>d` 的值,整个表达式的值为 `0`。
因此,`n` 的值是 `0`。
int a=5,b=3,c=2,d=4,m=3,n=6;执行(m=a>b)&&(n=c>d)
首先按照运算符优先级,执行 `>` 运算符,比较 `a` 和 `b` 的值,得到结果为 `1`(即真),因为 `5` 大于 `3`。
然后执行 `>` 运算符,比较 `c` 和 `d` 的值,得到结果为 `0`(即假),因为 `2` 不大于 `4`。
接着执行 `&&` 运算符,根据逻辑与的规则,只有两个操作数都是真(非零)才会返回真。因为 `1` 和 `0` 至少有一个是假,所以 `m` 的值为 `0`(即假)。
最后 `&&` 运算符的右侧操作数不会被计算,因为左侧操作数已经确定结果为假了。所以 `n` 的值还是原来的 `6`。