dev c ++ウィンドウでコンパイルされたコードは次のとおりです。
#include <stdio.h>
int main() {
int x = 5;
printf("%d and ", sizeof(x++)); // note 1
printf("%d\n", x); // note 2
return 0;
}
注1をx
実行した後は6になると思います。ただし、出力は次のとおりです。
4 and 5
注1のx
後にインクリメントしない理由を誰かが説明できますか?
C99標準から(強調は私のものです)
6.5.3.4/2
sizeof演算子は、そのオペランドのサイズ(バイト単位)を生成します。これは、式または型の括弧で囲まれた名前の場合があります。サイズは、オペランドのタイプから決定されます。結果は整数です。オペランドの型が可変長配列型の場合、オペランドが評価されます。それ以外の場合、オペランドは評価されず、結果は整数定数になります。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加