关于逻辑表达式的问题!

学习 时间:2026-03-29 17:29:27 阅读:8981
关于逻辑表达式的问题!void main(){int x=3,y=4,z=2,i;i=xy;printf("i=%d,z=%d",i,z)}i=0,z=2i=0我明白!i=xy这里不是已经给z复制为10了吗?怎么回事!上面的“复制”改为“赋值”!

最佳回答

忧伤的板栗

大胆的麦片

2026-03-29 17:29:27

这个问题,刚一看我也有点看不懂,所以就写代码看了一下,确实是z=2,所以我就想既然z的值没有发生变化,也就是(z=10)这一句根本没有执行。后来查了关于逻辑运算符的一些知识点,其中一条就是关于&&和||的。对C/C++编译器来讲是这样处理的:对&&前的值如果是0的话,&&后的部分就不再处理;对||刚好相反,当||前的值为1时,||后的部分就不再处理。所以,在这里z=2也就无可后非了。

最新回答共有2条回答

  • 帅气的蚂蚁
    回复
    2026-03-29 17:29:27

    这个问题,刚一看我也有点看不懂,所以就写代码看了一下,确实是z=2,所以我就想既然z的值没有发生变化,也就是(z=10)这一句根本没有执行。后来查了关于逻辑运算符的一些知识点,其中一条就是关于&&和||的。对C/C++编译器来讲是这样处理的:对&&前的值如果是0的话,&&后的部分就不再处理;对||刚好相反,当||前的值为1时,||后的部分就不再处理。所以,在这里z=2也就无可后非了。

上一篇 10+20+30+40+50+60+70+80+90+100=

下一篇 一道英语选择题,希望能有解析