作业帮 > 综合 > 作业

C语言:设abcd均为0执行(m=a==b)&&(n=c!=d)后 m n的值为

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/07/15 01:17:37
C语言:设abcd均为0执行(m=a==b)&&(n=c!=d)后 m n的值为
执行 (m=a=b)&&(n=c!=d)
先判断&&是左结合,算左括号,然后=(赋值)优先级低,先算a=b得到真赋值给m,m为1,然后整个括号内表达式为1;因为1 and 任意值 都为真!因此继续看右边,c!=d为假,所以n=0
如果是左括号值为假,则如果右边的n的值就为不确定!因为0&&任何值都为假
有不对的请指教!
再问: 我特别不懂到底是赋值还是判断真假。比如n=c!=d,为什么不是把C!的值赋值给N呢?C!为1. n=c! 那么也是1.
再答: 赋直运算符的优先级比判断真假的低,所以先判断真假,然后再做赋直运算