-1
array[i] = array[--size];

我知道 variable-- 等于 variable - 1 但 --variable 等于什么,当它位于数组括号中时它会做一些特殊的事情吗?我想这会从数组中删除一些我真的不明白这里的代码。

4

8 回答 8

3

代码设置size = size - 1并随后将元素复制sizei

于 2012-09-03T20:07:04.360 回答
2

它简单地等同于:

size-=1;
array[i] = array[size];
于 2012-09-03T20:07:29.070 回答
2

您的代码与以下内容相同:

size--;
array[i] = array[size];

前缀减量与后缀非常相似,唯一的区别是它计算的是减量之后的结果,而不是之前的值。

于 2012-09-03T20:08:34.053 回答
1

变量大小是在您的代码前面定义的。变量名前面的 -- 导致在执行该行代码之前减少 1。例如,如果 size 变量设置为 5,则在赋值发生之前,size 变量将减少到 4,然后执行 array[i] = array[4] 的赋值。

于 2012-09-03T20:09:03.690 回答
1

它只是这样做:

size-=1;
array[i] = array[size];

--variable表示预减量。那是首先该值将递减然后使用。

于 2012-09-03T20:09:06.360 回答
1

--从变量中减去 1,但--( 或++) 的位置控制变量何时递减

  • array[--size]在访问数组之前减一

  • array[size--]数组被访问后会减一

于 2012-09-03T20:10:16.593 回答
0

返回at位置中的array[index]元素。arrayindex

--value方法将值评估为value = value - 1,然后在操作中应用新值。

于 2012-09-03T20:08:29.570 回答
0

i-- 和 --i 本质上做同样的事情:它们从 i 中减去 1。不同之处在于 i-- 将在动作完成后减 1,而 --i 将在动作完成前减 1。这在 for 循环的情况下更有意义:

for (i = 5; i > 0; i--) {...}

在这种情况下,for 循环将运行 i 等于 5,然后在循环结束时,它将重复,但减去 1。如果情况是这样:

for (i = 5; i > 0; --i) {...}

在循环运行之前,我会从中减去 1,因此它会立即以 0 开始,但另一方面,它也会在 i = 0 时运行在末尾。

--size起来就像说size负1的值。

于 2012-09-03T20:09:51.180 回答