问题描述:
main()
{
int x=6,y;
printf("x=%d\n",x);
y=++x;
printf("y=++x:x=%d,y=%d\n",x,y);
y=x--;
printf("y=x--:x=%d\n",x,y);
}
我先说下我的想法啊,y=++x这一行是前置运算,x先自加1就变为7了,然后把x=7赋值给Y,所以y也为7了。
我不明白的是y=x--这行,此时X的值是用初值6还是7?如果用6那结果是x=5,y=6,如果用7结果x=6,y=7
我发现我自己都迷糊了,大家帮忙看看我的想法对不对?谢谢大家的热情。
问题解答:
1.后把x=7赋值给Y,所以y也为7了。
当然X为7 输出里++x只是按原样输出 ,不管它..
y=x-- y当然当然也为7 执行后x为6
2.你说的 如果用7结果x=6,y=7 那是在输出x y的情况下,注意看 输出里只有一个%d 所以只能输出x ..y在这里没有任何作用..
main()
{
int x=6,y;
printf("x=%d\n",x);
y=++x;//此处表示x先赋值给y,后自身加1,故此处y=6,此时x已经等于7了,因为自身运算是第二次进行的。
printf("y=++x:x=%d,y=%d\n",x,y);//
y=x--;//此处x已经等于7了,先是自身减1,得到6,再赋值给y,所以y=6
printf("y=x--:x=%d\n",x,y);
}
x=y++,先赋值运算,
x=++y,先做有y+1运算