关于#c语言#的问题:设a、b、c、d、m、n均为int型变量,则逻辑表达式(m=a>b)&&(n=c>d)运算后

设a、b、c、d、m、n均为int型变量,且a = 5、b = 6、c = 7、d = 8、m = 2、n = 2,则逻辑表达式( m = a > b ) && ( n = c > d)运算后,n的值为( )。
这个答案为啥是2啊,难到不应该是c>d不满足等于0然后赋值给n吗?我的逻辑是不是有问题

#include
int main(){
int a = 5,b = 6,c = 7,d = 8,m =2 ,n = 2;
( m = a > b ) && ( n = c > d);
printf("%d",n);
return 0;
}

img

因为对于&&符号,如果左边为False的话它就不会执行右边的判断了,这里 m = a > b,由于a < b,所以它为False,那么&&符号右边的就不会看了,所以n还是等于2的