[解決済み] なぜsizeof(x++)はxをインクリメントしないのですか?
2022-03-18 22:30:39
質問
以下は、dev c++ windowsでコンパイルしたコードです。
#include <stdio.h>
int main() {
int x = 5;
printf("%d and ", sizeof(x++)); // note 1
printf("%d\n", x); // note 2
return 0;
}
期待する
x
を実行した後、6になります。
注1
. しかし、出力されるのは
4 and 5
なぜ
x
の後にインクリメントされません。
ノート1
?
解決方法は?
からの C99規格 (強調は私です)
<ブロッククオート6.5.3.4/2
sizeof 演算子は、オペランド (式または括弧で囲まれた型名) のサイズ (バイト) を出力します。サイズは、オペランドの型から決定されます。結果は整数になります。オペランドの型が可変長配列の場合は、オペランドが評価され、そうでない場合は、オペランドが評価されます。 オペランドは評価されません。 であり、結果は整数の定数である。
関連
-
[解決済み] flexible array member not at end of structエラーの原因は何ですか?
-
[解決済み] SQLiteのINSERT/per-secondのパフォーマンスを向上させる
-
[解決済み] C言語では「?」演算子は何をするのですか?
-
[解決済み] 配列の場合、なぜ a[5] == 5[a] になるのでしょうか?
-
[解決済み] C言語における「static」の意味とは?
-
[解決済み] Cプリプロセッサはなぜ "linux "という単語を定数 "1 "と解釈するのですか?
-
[解決済み] 構造体のsizeofは、なぜ各メンバーのsizeofの合計と等しくないのですか?
-
[解決済み】なぜこれらのコンストラクトはプリインクリメントとポストインクリメントを使用して未定義の動作をしているのでしょうか?
-
[解決済み】このC関数は常にfalseを返すべきですが、そうではありません。
-
[解決済み] なぜ "sizeof(a ? true : false)" は4バイトの出力をするのでしょうか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
libc++abi.dylib: NSException タイプの捕捉されない例外で終了するエラー
-
[C] Error [Error] 代入の左オペランドとして lvalue が必要です。
-
[解決済み] mallocで文字列を確保する
-
[解決済み] CコードでEOFを表現する?
-
[解決済み] c または c++ 用のシンプルな 2 次元クロスプラットフォームグラフィックスライブラリ?[クローズド]
-
[解決済み] C言語のコードで「:-!」とは何ですか?
-
[解決済み] Cコードの単体テスト【終了しました
-
[解決済み] C言語でランダムなint型を生成するには?
-
[解決済み] longをフォーマットするprintfの引数は何ですか?
-
[解決済み] ストラクチャーとユニオンの違い