puts()について[ポインタ]

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
putc

puts()について[ポインタ]

#1

投稿記事 by putc » 13年前

コード:

int puts(unsigned char *str)
{
	while (*str)
		putc(*(str++));
	return 0;
}
while (*str)

これはどういう意味ですか?

また手元にある参考書を見ると *a = a[0] のようなことが書かれていますが、
この関数では *str = "Hello World!\n" != str[0] を表しているように思います。
解説をお願いします。

box
記事: 2002
登録日時: 15年前

Re: puts()について[ポインタ]

#2

投稿記事 by box » 13年前

putc さんが書きました:

コード:

int puts(unsigned char *str)
{
	while (*str)
		putc(*(str++));
	return 0;
}
ポインター str が指している場所 *str が '\0' でない間(つまり、文字列の終端でない間)、
str が指している場所 *str (1文字)を putc() で出力し、その後、str を1つ先へ進める、
ということを行なっています。

str が指している先頭文字から1文字ずつ順繰りに出力しようとしています。
最後に編集したユーザー box on 2012年12月29日(土) 07:01 [ 編集 1 回目 ]
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。

putc

Re: puts()について[ポインタ]

#3

投稿記事 by putc » 13年前

理解できました!
ありがとうございます。


閉鎖

“C言語何でも質問掲示板” へ戻る