C语言 int a=6,b=8,c=3;a>b&&++c;printf("%d\n",c),为什么结果不是4而是3。

如题所述

关键在这句
a>b && ++c;
这个表达式a>b为假,所以后面的++c没有执行。所以是3的。
(如果改为a<b,结果就是4了。)
你看一下逻辑运算符那一节吧,肯定有讲这个内容。追问

那如果把&&换成||号,结果是不是正好相反?

追答

是的。

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-12-09
a>b&&++c
就是(a>b) && (++c)
C语言执行&&时,第一个条件为假就不会再判断第二个,所以++c没有被执行
第2个回答  2011-12-09
你首先要理解&&, a>b&&++c 是假(0),所以是3,a<b&&++c,则是真(1),结果就会是4。
第3个回答  2011-12-09
前面有一个++C的语句,它会将C的值加一,所以是4。
第4个回答  2011-12-09
你这个代码写得好像有点问题吧!请你把可执行的代码拷上来再问吧!
相似回答