关于自加,自减,和标准输出

lxylzlzs   2010-12-17 19:50 楼主

#include <stdio.h>

void main()

{   int x=3,y;

    y=––x+––x+x++;

    printf("x=%d   y=%d\n",x,y);

 }

x=2,y=3     不懂 ???????

 

#include<stdio.h>

void main()

{

  int i=8;

 printf("%d %d %d %d",i--,--i,i++,i++);

 

}

答案是7 7 8 8     ??????????

 

 

#include<stdio.h>

void main()

{

  int i=8;

 printf("%d %d %d %d",i--,--i,++i,i++);

 

}

 

答案是8 8 9 8    

 

 

 

 

 

 

 

回复评论 (2)

--x 或者++x表示先--或者++后再参与运算,x--或者x++是参与运算完后再做--或者++
点赞  2010-12-18 06:49
天哪,这是考试题吗?
这道题出得实在不怎么样。因为,这样的表达式的解析和编译器相关,Ansi C标准里面没有规定必须以怎样的次序来解释
i +++ j
这样的表达式。

写代码也不要这样写,哪怕你100%确定这样的表达式的结果。不要挑战自己以及别人的记忆力。

点赞  2010-12-20 18:34
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复