array[i] = array[--size];
我知道 variable-- 等于 variable - 1 但 --variable 等于什么,当它位于数组括号中时它会做一些特殊的事情吗?我想这会从数组中删除一些我真的不明白这里的代码。
array[i] = array[--size];
我知道 variable-- 等于 variable - 1 但 --variable 等于什么,当它位于数组括号中时它会做一些特殊的事情吗?我想这会从数组中删除一些我真的不明白这里的代码。
代码设置size = size - 1
并随后将元素复制size
到i
。
它简单地等同于:
size-=1;
array[i] = array[size];
您的代码与以下内容相同:
size--;
array[i] = array[size];
前缀减量与后缀非常相似,唯一的区别是它计算的是减量之后的结果,而不是之前的值。
变量大小是在您的代码前面定义的。变量名前面的 -- 导致在执行该行代码之前减少 1。例如,如果 size 变量设置为 5,则在赋值发生之前,size 变量将减少到 4,然后执行 array[i] = array[4] 的赋值。
它只是这样做:
size-=1;
array[i] = array[size];
--variable
表示预减量。那是首先该值将递减然后使用。
--
从变量中减去 1,但--
( 或++
) 的位置控制变量何时递减
array[--size]
在访问数组之前减一
array[size--]
数组被访问后会减一
返回at位置中的array[index]
元素。array
index
该--value
方法将值评估为value = value - 1
,然后在操作中应用新值。
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的值。