java中的pre增量和后增量

时间:2015-09-24 05:09:35

标签: java

我遇到问题,如果我做了

 <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlin<image width="290" height="290" xlink:href="../includes-jar-code/_images/SquareTestGray.png">
    <rect x="0" y="0" width="290" height="290" fill="royalblue" stroke="#53c"></rect>
    <!--<a xlink:href="//jarea.com/yellow">-->
        <rect onclick="notify(evt)" id="svgYellow" opacity="0" x="0" y="0" fill="#FFFF00"  width="145" height="145" />       
        <text x="72" y="72" fill="red">Y</text>
    <!--</a>-->
    <!--<a xlink:href="//jarea.com/pink">-->
        <rect onclick="notify(evt)" id="svgPink" x="0" y="146" fill="#FF00FF" opacity="0" width="145" height="145" />
        <text x="72" y="218" fill="red">P</text>
    <!--</a>-->
    <!--<a xlink:href="//jarea.com/blue">-->
        <rect onclick="notify(evt)" id="svgBlue" x="146" y="0" fill="#0000FF" opacity="0" width="145" height="145" />
        <text x="218" y="72" fill="red">B</text>
    <!--</a>-->
    <!--<a xlink:href="//jarea.com/green">-->
        <rect onclick="notify(evt)" id="svgGreen" x="146" y="146" fill="#008000" opacity="0" width="145" height="145" />
        <text x="218" y="218" fill="red">G</text>
    <!--</a>-->
</svg>

我的问题是,在第一种情况下,我们在同一个变量中分配后递增值a,所以首先它在a本身中分配初始值但是在执行语句之后a的值不会增加,因为它是在c ++中,所以递增的值会增加。是否有可能在第一种情况下,增加的a的地址和分配的a的地址将是不同的。

我搜索了stackoverflow,但无法找到我的问题的答案,虽然我发现这些链接在某种程度上有帮助

How do the post increment (i++) and pre increment (++i) operators work in Java?

Pre and Post Increment and Decrement in Java

我搜索了互联网,它说了一些关于鬼变量的东西我没有正确地得到它

所以请告诉我正确答案。

1 个答案:

答案 0 :(得分:2)

  

在第一种情况下,我们在中指定了增加后的值a   相同的变量首先它在a本身中分配初始值   但是在执行语句之后,a的值不是   在c ++中增加,因此增加的值会增加。是   有可能在第一种情况下增加a的地址   指定的a的地址和地址会有所不同。

在执行语句之后,但在执行之后,案例1中的a值(以及案例3中c的值相同)不会递增表达式a++ (或c++)。它立即完成。

因此,在您的情况1中,a的值暂时只是暂时,1在评估a++之后。该表达式的值为零。因此,当您在案例1中将a++的结果分配给a时,您会将a重置为零。

至于问题的第二部分:不,a要递增而a要分配的是完全相同的变量。