C语言逻辑与

2025-06-22 13:26:01
推荐回答(4个)
回答1:

你的(m=0)&&(n=0);这条打错了吧?应该是(m==0)&&(n==0)

如果不是打错的话,那么m=0就是m被赋值于0,表达式为0,&&运算符只要有一边是假,就是假,其他的就不管了,导致了m=0而n由于&&不管他了,所以他任然还是5,没有被赋值为0

回答2:

k=(m=0)&&(n=0);
m=0先给m赋值为0,然后判断m的真假,0为假
对于&&运算符,如果前边为假,就不再判断后边
所以后边的n=0并不执行

回答3:

此乃条件与非逻辑与,逻辑与只有一个&,条件与是短路原则,m=0第一个条件就已经是假了

回答4:

k=(m=0)&&(n=0);

这里的两个括号里都是在赋值,并不是在判断.