8

私がこれを行うとき:count = ++ count; 警告が表示されるのはなぜですか-変数カウントへの割り当ては効果がありませんか?これは、カウントがインクリメントされてから、それ自体または他の何かに割り当てられることを意味しますか?++ countと同じですか?count =count++で何が起こるか; ?これについて警告が表示されないのはなぜですか?

4

4 に答える 4

14

count++++countは両方ともの略ですcount=count+1。割り当ては組み込まれているため、再度割り当てる必要はありません。count++postfixとも呼ばれます)と( prefix++countとも呼ばれます)の違いは、行の残りの部分の前に発生し、行の残りの部分の後に発生することです。++countcount++

分解すると、次のようになりcount=count++ます。

    count = count;
    count = count+1;

これで、postfixが警告を表示しない理由がわかります。最後に何かが実際に変更されています。

分解するとcount=++count、次のようになります。

    count = count+1;
    count = count;

ご覧のとおり、コードの2行目は役に立たないため、コンパイラーは警告を表示します。

于 2012-07-24T21:25:53.183 に答える
3

あなたが書いているステートメントを分割する:

++count;
count = count;

ご覧のとおり、count = countは何も実行しないため、警告が表示されます。

于 2012-07-24T21:27:21.703 に答える
3

++演算子は、次のショートカットですcount = count + 1。私たちがあなたのラインを壊すならば、count = ++countそれは反応しますcount = count+1 = count

于 2012-07-24T21:27:50.560 に答える
3

少し拡張すると、count++は後置です。それは他の操作の後に行われるので、あなたが次のようなことをした場合

int a = 0, b = 0;
a = b++;

aは0、bは1になります。ただし、そうした場合は++countがプレフィックスになります。

int a = 0, b = 0;
a = ++b;

その場合、aとbは両方とも1になります。

count++;

また

++count;

それは問題ではありませんが、それを他のものと組み合わせる場合、それは

于 2012-07-24T21:34:11.933 に答える