我在一本书中发现了这一点,但我得不到它的作用:
int index = 1;
...
getArray() [index=2]++;
[index = 2] ++; 对我来说很奇怪,但编译。更奇怪的是,如果 ++ 被删除它会变得无效,即使据我所知, ++ 在这种情况下什么都不做(值总是2) 。
那么,在这种情况下,后增量运算符的重点是什么(因为它不会增加值),为什么括号和为什么只有在最后添加post-inc时语句才合法?
有人可以解释这个神秘的语法是什么以及它的作用是什么?
答案 0 :(得分:10)
让我们打破这段代码:
getArray() [index=2]++;
相当于:
int[] someArray = getArray(); // Assume that's an int[]
index = 2;
someArray[index]++;
最后一行相当于:
someArray[index] = someArray[index] + 1;
如果删除++
,则第二个表达式不是有效语句。它变成了:
getArray() [index];
您必须将其分配给某个L值。
答案 1 :(得分:0)
当然它会无效,你没有做任何事情。
getArray() [index=2]++;
为了演示,我将getArray()
与myArray
{ 100, 200, 300, 400 }
切换。{。}
比它等于:
myArray[2]++;
myArray[2]
现在将输出:301
index
将是:2
答案 2 :(得分:0)
getArray()
必须返回一组数字(比方说int
s),所以getArray() [index=2]++;
已解剖:
int index = 2;
int[] array = getArray();
array[index] = array[index] + 1;