小伙子你设计的不太明朗阿,应该是这样的程序看起来比较更直接点:
#include
void main(void)
{
int x,y,y1,y2;
x=y=10;
y1=x++; //表示先执行y1 = x ,然后X++ 结果是 y1 = 10
y2=++y; //这个先执行的是y++然后y2 = 11;
printf("%d %d",y1,y2);
getchar();
}
楼主要明白的是:一个表达式里有i++ 或i--的话就先算了表达式的值,然后表达式完了它们才会自增或自减的,而++i和--i就是先自增或自减再算表达式的值。
所以:x++ = 10,然后x自增,也就是y2=10;x=11;
++x=12;y1=12,x=13。结果输出应该是:12 10
这实际上是X++和++X的问题:前者表示先使用X的值,再将X加1作为X的值;而后者表示先将X的值加1,再使用X.本程序中 y1=x++;表示y1=x;x=x+1;而y2=++x;表示x=x+1;y2=x.
++这个符号用法你没区分好
初学的话把他们分开写成x=x+1比较好。
y2=x++;
--x;
y1=++x;