-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

変数のサイズは、コードの前半で定義されています。変数名の前に -- があると、そのコード行を実行する前に to が 1 減ります。たとえば、サイズ変数が 5 に設定されている場合、割り当てが発生する前にサイズ変数は 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]配列がアクセスされる前に 1 を減算します

  • array[size--]配列がアクセスされた後に1を減算します

于 2012-09-03T20:10:16.593 に答える
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 の場合も最後に実行されます。

言うことは、マイナス 1--sizeの値を言うようなものです。size

于 2012-09-03T20:09:51.180 に答える
0

は、その場所array[index]の要素を返します。arrayindex

--value手段は値を次のように評価しvalue = value - 1、演算で新しい値を適用します。

于 2012-09-03T20:08:29.570 に答える