答案是2没错。
首先,你得知道运算符优先级是 >优先于=
因此先执行a>b这条语句,这条语句运行结果是返回一个bool值,只有0和1两种情况
因为a=5,b=6所以语句a>b会返回0,并将结果赋值给m
因此在左边那个括号里面的最终结果是m=0,
而&&符号是“并且”的意思,往往放在if()中来判断,只有两边都非0,才会执行if()下面的语句,
当&&的左边为0,它就不执行&&右边的语句(因为这条语句“并且”的意思,当左边为0,就是为假,不论右边出现什么情况,整个语句必然是假,执行右边语句没意义,编译器跳过不执行)
综上,可得n的值没改变,为2
@楼上的