- ベストアンサー
printfがなくても文字が現れるのはなぜ!?
- printf関数の使用せずに文字が現れる理由を知りたい
- ポインタを使って変数の値を表示する方法について知りたい
- 出力結果として文字が出現する理由について教えてください
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
> *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; が文字列として出力された訳ではありません。 あなたはそう理解しているようですが。
その他の回答 (2)
- usa3usa
- ベストアンサー率33% (20/59)
>*p=100 は*p = 100;で終わっていますが!出力結果として文字が出てきたいるのはなぜですか! つまり、「*p = 100;」のようにセミコロンつきでなぜ出力されないかという質問ですね。 回答:printf("*p=%d\n", *p); の代わりに、printf("*p=%d;\n", *p);というprintfにすれば、セミコロンつきで出力されますよ。
補足
ご回答真にありがとうございます。 現在検証中です! しばらくお待ちくださいませ^^
- wormhole
- ベストアンサー率28% (1626/5665)
>p=0xff930a1c >&hensuu=0xff930a1c >*p=0 >*p=100 >hensuu=100 出力結果のうち、どの部分がprintfがなくて出力されたものなんですか?
補足
ご回答真にありがとうございます。 現在検証中です! しばらくお待ちくださいませ^^
お礼
*p = 100; printf("*p=%d\n", *p); 又!馬鹿な質問して皆様困惑させたことをあやまります。 *p=%d\n", *p を! printfしなさいと命令しているのだから-- *p = 100と当然出力されて当たり前でした^^ 今更なんですが、何ぜこんな質問をしたのか今になって不思議です。
補足
ご回答真にありがとうございます。 現在検証中です! しばらくお待ちくださいませ^^