Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
例えば
int a = 3; int b = sizeof(++a); int c = a;
結果として、c は 3 または 4 に等しいですか? 結果は特定のコンパイラに依存しますか?
仕様では、インクリメント演算子が演算子内で使用された場合、影響を受けないsizeofと述べています。
sizeof
これは抽象的な観点からも理にかなっています。具体的には、このsizeof演算子は、オブジェクトが使用するバイト数を返します。整数またはポインターをインクリメントしてもその整数のサイズは変わりませんが、++ 演算子は新しいプログラマーにサイズが変わると誤解させる可能性があります。
興味がある場合は、トピック「副作用」を検索して、この主題に関する詳細な議論を行ってください。