这个程序最后n不应该等于10吗

img


这个n最后是怎么输出的,为什么最后不等于10,这个过程具体是怎么实现的

这个问题暴露了你对优先级一无所知
赋值的优先级最低,所以要先计算c>d的值,值再赋值给n,而不是先把c赋值给n

计算c>d,然后结果赋值给n,结果为真是1

c>d 的结果是一个布尔值, 计算机内 布尔值 真存储的是数字1, 假存储的是0 ,
所以 m=1, 并且 n=1,
先进行的是比较运算, 然后才是赋值, 不是严格意义上的 从左往右依次计算, 是根据运算符优先级计算的

选择C啊,因为m=a<b为真,所以后面n=c>d会执行,那么c>d是真,也就是1,所以n=1