我尝试下面的Java代码段:预/后递增运算符和数组
int[] testArray={10,20,30,40};
int i= 0;
testArray[i++]= testArray[i++]+1;
System.out.println("The value of i: "+i);
for(int i1=0;i1<testArray.length;i1++)
{
System.out.println(testArray[i1]);
}
其中i = 0,阵列的输出值包括:21, 20,30,40
我无法理解此输出,因为输出应该是:10, 11, 30, 40
testArray[0]+1
将11
一下子就被然后分配给testArray[1]
但事实并非如此。 任何人都可以解释输出吗?
什么是RHS?我不熟悉。 –
@KevinBowersox右手边(数学术语):) –
首先,RHS的评估是否正确?所以testArray [i ++] + 1首先被评估,并且当i = 1时它变成testArray [0] +1。最后testArray [1] = testArray [0] +1。为什么它错了? – Zephyr