- ベストアンサー
ポインタについて…
大文字を小文字に変えるプログラムで以下のようなソースがあるんですが、 main() [ char str[10],*p; gets(str); p = str; while(*p){ *p = toupper(*p); p++; } } この、whileの条件の、(*p)の意味が分からないんですが(^^;; きっと簡単な事なんだと思うんですが、分かる方、是非教えてくださいm(_ _)m
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
whileの条件の(*p)と特定していることから ポインタ変数に*をつけたときの動作はわかっているようなので、 while(*p)の説明のみします。 strという変数にはgetsで取得した文字列が入っています。 文字列というのは文字の終わりを判断するのにNULL文字('\0')が入っています。 NULL文字というのは、大抵のコンパイラでは(0)なので 何か文字があればwhile(*p)は真になりそのままループの中に入ります。 文字列の終端(NULL文字)になったら偽になるのでループを抜けます。
お礼
ありがとうございました(^^;; やっぱりあっけなかったですね~、解決法。