• ベストアンサー

printfの出力について

初歩的な事ですが、 short *a; short b; a = &b; printf("%04x\n",x++); だとどのように出力されるのですか? 本を読むと、4つの幅をもたせて16進数で表すと思うのですが、 実行してもよくわからないのでよろしければ教えてください。 bのアドレスは、0x1234としておきます。

質問者が選んだベストアンサー

  • ベストアンサー
  • cats1234
  • ベストアンサー率28% (103/356)
回答No.4

printf("%04x\n",a++); に置き換えて回答すると出力は 1234 です。 「a++」は出力後にインクリメントするから「a」と変わりません。 printf("%04x\n",++a); 上記ならば出力は 1236 です。 ちなみにアドレスを表示したいなら「%p」を使用するといいですよ。

その他の回答 (3)

  • php504
  • ベストアンサー率42% (926/2160)
回答No.3

やりたいことは printf("%04x\n",++a); でしょうか? 実行した通りだと思うのですがポインタのインクリメント(デクリメント)は型のバイト数に応じて変わります。

  • cats1234
  • ベストアンサー率28% (103/356)
回答No.2

変数xを定義していないので、コンパイルエラーです。

回答No.1

xに対する値が決まっていないので不定です。

関連するQ&A