对于代码段: char c = 48; int i = 1, j = 10; j = !(c > j)&&i++; 则i和j的值分别是1和0。请问这句话是正确的吗?
✓
正确
对
√
对✔
TRUE
错误,c会先转化为int型,此时c=0,0>10为假,!(0>10)为真。
正确答案:正确 解题步骤 st...
用户登录可进行刷题及查看答案
正确答案:正确 解题步骤 step1.判断优先级:()是一级优先级;!与 ++ 是二级优先级
step2.先计算括号内( c > j ) 为真 ——> 1
step3.计算 !与 ++ :
(c > j)为真——>! (c > j)为假——>0 ; step4. &&具有短路特性,左操作数为假,不会再计算右操作数,即此时
j = !(c > j)&&(不计算i++); j = 0; i不进行++,因此i仍等于1
登录后提交答案