0

バイト配列のコンテンツの値を増やしたくありません。

たとえば、私の配列で値を取得した場合1100001、配列の内容が表示されるように、この値をインクリメントする効果的な方法は何ですか1100010

以下のようになるかと思ったのですが、うまくいきません。

ByteArray[i] = ByteArray[i]++;

前もって感謝します

4

3 に答える 3

8
ByteArray[i] = ByteArray[i]++;

これは次と同等です。

byte temp = ByteArray[i];
ByteArray[i]++;
ByteArray[i] = temp;

つまり、値を増やしてから、古い値に置き換えます。

あなたが望むのはどちらかです

ByteArray[i]++;

また

ByteArray[i] = ByteArray[i] + 1;
于 2013-10-22T14:18:37.357 に答える
2

x++の元の値を返しますx
次に、元の値を配列スロットに割り当てます。

于 2013-10-22T14:15:09.613 に答える
1

インクリメント演算子を読み込む必要があります。 と が++xありx++ます。どちらもインクリメントしますが、++xx+1 をx++返しますが、x を返します。

これはあなたの場合、ByteArray[i] を ByteArray[i] に設定すると、インクリメントはイライラして上書きされます。

ByteArray[i]++;代わりに使用してください。

そして、そのようなインクリメントのリターンを使用するときはいつでも、使用するバリアントについて考えてください。

于 2013-10-22T14:19:10.190 に答える