• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:printfがなくても文字が現れるのはなぜ!?)

printfがなくても文字が現れるのはなぜ!?

このQ&Aのポイント
  • printf関数の使用せずに文字が現れる理由を知りたい
  • ポインタを使って変数の値を表示する方法について知りたい
  • 出力結果として文字が出現する理由について教えてください

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

  • ベストアンサー
  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.1

>  *p=100 は*p = 100;で終わっていますが!出力結果として文字が出てきたいるのはなぜですか! その直後にprintf()で出力指定しているからではなかったのですか? 試しに全部のprintf()をコメントアウトしてみましょう。 printf("p=%p &hensuu=%p\n", p, &hensuu); の結果が、 p=0xff930a1c &hensuu=0xff930a1c # 改行はないはずですけどね。 次の printf("*p=%d\n", *p); の結果が *p=0 # ポインタが指しているhensuuは0ですからね。 その次の printf("*p=%d\n", *p); の結果が *p=100 # 間にある処理で書き換えていますからね。 さらに次の printf("hensuu=%d\n", hensuu); の結果が hensuu=100 # ポインタ使って書き換えましたからね。 間違っても、 *p = 100; が文字列として出力された訳ではありません。 あなたはそう理解しているようですが。

Campus2
質問者

お礼

*p = 100; printf("*p=%d\n", *p);  又!馬鹿な質問して皆様困惑させたことをあやまります。  *p=%d\n", *p を! printfしなさいと命令しているのだから--  *p = 100と当然出力されて当たり前でした^^  今更なんですが、何ぜこんな質問をしたのか今になって不思議です。  

Campus2
質問者

補足

ご回答真にありがとうございます。 現在検証中です!  しばらくお待ちくださいませ^^

その他の回答 (2)

  • usa3usa
  • ベストアンサー率33% (20/59)
回答No.3

>*p=100 は*p = 100;で終わっていますが!出力結果として文字が出てきたいるのはなぜですか! つまり、「*p = 100;」のようにセミコロンつきでなぜ出力されないかという質問ですね。 回答:printf("*p=%d\n", *p); の代わりに、printf("*p=%d;\n", *p);というprintfにすれば、セミコロンつきで出力されますよ。

Campus2
質問者

補足

ご回答真にありがとうございます。 現在検証中です!  しばらくお待ちくださいませ^^

  • wormhole
  • ベストアンサー率28% (1626/5665)
回答No.2

>p=0xff930a1c >&hensuu=0xff930a1c >*p=0 >*p=100 >hensuu=100 出力結果のうち、どの部分がprintfがなくて出力されたものなんですか?

Campus2
質問者

補足

ご回答真にありがとうございます。 現在検証中です!  しばらくお待ちくださいませ^^

関連するQ&A