当前位置: 代码迷 >> C语言 >> [求助]不理解~~
  详细解决方案

[求助]不理解~~

热度:314   发布时间:2005-03-17 05:29:00.0
[求助]不理解~~
mian
{
  int x=4;
if(x++>5)
   print("%d",x);
esle
   print("%d",x--);
我不懂为什么答案是5,
(x++>5)x不应该是4吗?为什么是5
----------------解决方案--------------------------------------------------------
你应该多理解一下自增1和自减1
不过不好意思我也是初学者
不过我发现你好想少了一个 \n
不知道是不是
----------------解决方案--------------------------------------------------------
(x++>5)x应该是5啊
自增1  就是x+1再和5做比较啊不过好想是相等哦
----------------解决方案--------------------------------------------------------
也是啊~!?
----------------解决方案--------------------------------------------------------
因为(x++>5)意为将x自加1后与5比较大小,故x值变为5,又此时x不大于5,所以转入else 语句,又x--因为后面不涉及到计算,所以x--其实任为现在的x值,即为5
----------------解决方案--------------------------------------------------------
可以每一步运算完后,把当前x值printf出来,好便于理解。
----------------解决方案--------------------------------------------------------
你好。
X++与X--都是先使用x的值,然后再对 x的值进行变化。
所以执行
if(x++>5)
是,x的值为x, 然后便成5。printf("%d",x--)也是一样。
----------------解决方案--------------------------------------------------------
int x = 4 ;
if( x ++ > 5 )
可以这样理解  
int  x = 4;
if ( x > 5)  and  x ++      ///  x 先与5比较  后再加一
print  (  "% d " , x )        //  加一后   x=5

而  if  (++ x > 5)  则  这样理解
  x ++;
  if  (x>5)                //  x 先加一   再与5比较
   print (    ........)
----------------解决方案--------------------------------------------------------
i++:在使用i后,使i的值加1。

这里的使用包括那些运算符(我以前还以为比较不算使用的,郁闷)
看来C的路还很遥远

[此贴子已经被作者于2005-3-17 15:59:36编辑过]



----------------解决方案--------------------------------------------------------
  相关解决方案