私がこれを行うとき:count = ++ count; 警告が表示されるのはなぜですか-変数カウントへの割り当ては効果がありませんか?これは、カウントがインクリメントされてから、それ自体または他の何かに割り当てられることを意味しますか?++ countと同じですか?count =count++で何が起こるか; ?これについて警告が表示されないのはなぜですか?
4 に答える
count++
と++count
は両方ともの略ですcount=count+1
。割り当ては組み込まれているため、再度割り当てる必要はありません。count++
(postfixとも呼ばれます)と( prefix++count
とも呼ばれます)の違いは、行の残りの部分の前に発生し、行の残りの部分の後に発生することです。++count
count++
分解すると、次のようになりcount=count++
ます。
count = count;
count = count+1;
これで、postfixが警告を表示しない理由がわかります。最後に何かが実際に変更されています。
分解するとcount=++count
、次のようになります。
count = count+1;
count = count;
ご覧のとおり、コードの2行目は役に立たないため、コンパイラーは警告を表示します。
あなたが書いているステートメントを分割する:
++count;
count = count;
ご覧のとおり、count = countは何も実行しないため、警告が表示されます。
++演算子は、次のショートカットですcount = count + 1
。私たちがあなたのラインを壊すならば、count = ++count
それは反応しますcount = count+1 = count
少し拡張すると、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;
それは問題ではありませんが、それを他のものと組み合わせる場合、それは