int a=1,b=2,c=3,d=4,m=2,n=2; (m=a>b)&&(n=c>d) n值是多少
时间: 2023-08-22 07:10:06 浏览: 71
表达式 `(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=1,b=2,c=3,d=4,m=2,n=2; 执行(m=a>b)&&(n=c>d) n值是多少
根据运算符优先级,比较运算符 `>` 的优先级高于赋值运算符 `=`,逻辑与运算符 `&&` 的优先级又高于赋值运算符 `=`,因此先计算 `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)` 时,会先进行 `a>b` 的比较,因为 `a` 的值是 1,`b` 的值是 2,所以结果为 false,即 `m` 的值为 false。
由于 `&&` 运算符是短路运算符,即如果第一个操作数为 false,则不再计算第二个操作数的值,因此 `n=c>d` 不会被执行。
因此,`n` 的值不会被赋值,它的值仍然是初始值 2。