小弟问下简单的C语言语句组。诚恳谢谢大家。

来源:百度知道 编辑:UC知道 时间:2024/05/30 04:19:58
小弟初学C语言,有两个各语句组
int x=0;
if(x++<0)
printf("%d",--x);
printf("%d",x++);
结果是1,可是明明x是0,x++不小于0所以执行后面的printfx++吧,应该是输出0吧,然后x+1变成0吧。这个地方不大明白。。
第二个问题。。
int x=-1
if(x++<0)
printf("%d",--x);
printf("%d",x++);
两个程序的大体差不多,但是就是x的值不一样,他的x=-1<0所以执行前面的printf了,应该结果是得-2吧。可是答案是-1和-1,还是两个值呢。。
小弟不大明白,希望高手指导,我不胜感激,分不多,在心!!

int x=0;
if(x++<0) //参与比较时,x已经等于1了
printf("%d",--x); //因为if不满足,这句不执行
printf("%d",x++); //先输出,后++,输出时x为1,输出完后,x为2

int x=-1
if(x++<0) //参与比较时,x为0
printf("%d",--x); //条件不满足,这句不执行
printf("%d",x++); //先输出,后++,所以为0

建议你在printf语句里加的别的东西,区别一下,你就知道是哪里输出的了,比如:
int x=-1
if(x++<0)
printf("this is in if : %d",--x);
printf("this is after if: %d",x++);

int x=0;
if(x++<0) //判断发觉x并不小于0,结果是false.然后x++,x变为1
printf("%d",--x);//因为刚才判断x不小于0,所以不执行这个语句。
printf("%d",x++); //输出x的值1,(之前已经由0自增为1)。输出1后,x++,x又自增1,变为2。但不输出结果。

nt x=-1
if(x++<0) //判断x=-1小于0,结果为true,真;然后x++自增,x变为0
printf("%d",--x);//因为上面if判断出x小于0, 所以执行这个语句,但--x,即x自减1之后才输出,所以之前x自增1后为0,现在自减1,变为原来的-1,因此输出结果是-1。
printf("%d",x++); //再次输出x的值-1。输出后,x的值又自增1。

1、

x++<0 是执行x<0 的判断之后,才 x = x + 1;