#include "stdio.h"
void main()
{int m=5,n=5,k;
k=(m=0)&&(n=0);
printf("%d,%d\n",m,n);
}
为什么输出:0,5 ??
C语言逻辑与
答案:4 悬赏:0 手机版
解决时间 2021-02-17 23:43
- 提问者网友:欲劫无渡
- 2021-02-17 06:13
最佳答案
- 五星知识达人网友:毛毛
- 2021-02-17 06:51
你的(m=0)&&(n=0);这条打错了吧?应该是(m==0)&&(n==0)
如果不是打错的话,那么m=0就是m被赋值于0,表达式为0,&&运算符只要有一边是假,就是假,其他的就不管了,导致了m=0而n由于&&不管他了,所以他任然还是5,没有被赋值为0
如果不是打错的话,那么m=0就是m被赋值于0,表达式为0,&&运算符只要有一边是假,就是假,其他的就不管了,导致了m=0而n由于&&不管他了,所以他任然还是5,没有被赋值为0
全部回答
- 1楼网友:枭雄戏美人
- 2021-02-17 08:10
逻辑型叫布尔型,是c语言的变量类型,只有true和false两种值
- 2楼网友:过活
- 2021-02-17 08:03
此乃条件与非逻辑与,逻辑与只有一个&,条件与是短路原则,m=0第一个条件就已经是假了
- 3楼网友:一叶十三刺
- 2021-02-17 07:18
k=(m=0)&&(n=0);
m=0先给m赋值为0,然后判断m的真假,0为假
对于&&运算符,如果前边为假,就不再判断后边
所以后边的n=0并不执行
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯