有个C语言的程序想让大家帮解释下什么意思和结果

#include"stdio.h"
main()
{
int a=-1,b=3,c;
c=(++a<0)&&(b--<0);
printf("%d %d %d\n",a,b,c);
}

结果是 0,3,0
++a<0不成立,其值为false,所以&&后面的运算就不再进行,故b的值不变
c的值也为false也就是0,这程序考的就是你对++,--以及&&的理解

2楼的,不会不可耻,可耻的是不会还要教坏别人,自己不去运行程序,光相当然,误人子弟啊!!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-05-28
哪里不懂?
++a的意思是先使a自增1然后再进行逻辑运算,b--是先运算再减1
第2个回答  2010-05-28
#include"stdio.h"
main()
{
int a=-1,b=3,c;//定义三个常数a,b,c
c=(++a<0)&&(b--<0);//这里a=0,++a<0先执行判断a<0,b--<0先执行b--这里b=2,再执行b<0比较;所以c=0
printf("%d %d %d\n",a,b,c);输出a,b,c;a=0,b=2,c=0
}
第3个回答  2010-05-28
这段代码是说考查运算符&&的,在这里,++a的值是0所以不小于0,那这个表达式的值是0,0就说明是假的,&&运算符只要一个为假就短路不在运算而是输出了.所以输出的结果应为
0 3 0
第4个回答  2010-05-28
条件表达式从左向右求值,先求(++a<0),++是前缀,所以a先自增在比较,所以a的值为0,(++a<0)的值为0(注意才C++里用0表示假,用非0表示真);再求(b--<0),同样,后缀--是先比较在自减,所以(b--<0)的值是0,b的值是2;这样c=0&&0了,c的值就为0。
最后输出
0 2 0
第5个回答  2010-05-28
a=0 b=2 c=0
++a 是先增加再执行所以在执行++a是结果是0 最后运行出来结果是0
b-- 是先执行再减 在执行时表达式中的值为3 行结果是2
c用的是逻辑运算,两个表达式中有一个为假,那么结果就是假,两个表达式中结果都是假,所以最后c的结果就是假,也就是0
你也可以去看看有关c语言的书,希望能帮到你。
相似回答