ページ 11

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

Posted: 2012年12月29日(土) 02:31
by putc

コード:

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

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

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

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

Posted: 2012年12月29日(土) 06:55
by box
putc さんが書きました:

コード:

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

str が指している先頭文字から1文字ずつ順繰りに出力しようとしています。

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

Posted: 2012年12月29日(土) 07:01
by putc
理解できました!
ありがとうございます。

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

Posted: 2012年12月29日(土) 07:01
by putc
解決