- ベストアンサー
printfの出力について
初歩的な事ですが、 short *a; short b; a = &b; printf("%04x\n",x++); だとどのように出力されるのですか? 本を読むと、4つの幅をもたせて16進数で表すと思うのですが、 実行してもよくわからないのでよろしければ教えてください。 bのアドレスは、0x1234としておきます。
- みんなの回答 (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を定義していないので、コンパイルエラーです。
- ekuko_ecch
- ベストアンサー率17% (16/91)
回答No.1
xに対する値が決まっていないので不定です。