在c/c++,java里面都有++/--这样的递增递减的单目预算符。今天在看java代码示例时,看到了下面的代码
1 int x =7; 2 int y =0; 3 x = x++; 4 y=x++; 5 z=++x; 6 printf("y=%d,z=%d",y,z);
上面的代码的输出是7,9.
对于上面的问题的处理,主要是要真正理解了赋值运算符和递增递减运算符的实质:
1. =这个赋值运算符,它是首先计算表达式右边,然后把右边的结果再赋值给左边的变量。
2.关于++/--单目运算符,根据它在变量的左边和右边。我们这样理解:符号在右边,先使用变量值,然后再增减;符号在左边,先增减,在使用变量值。
结合上面的两个规则,我们来分析x=x++; --》先使用x的变量值作为=号的赋值的值(7),然后x++,这是x的值变成8.然后把右边的结果7再赋值给x,这样x最终变成了7.
剩下的y=x++ --》y=7;x=8
z=++x;-->z=9,x=9.
希望上面的分析对大家有用。
原文:http://www.cnblogs.com/paky-du/p/3767576.html