質問: 初心者です。C言語で関数を学んでいるのですが、教科書の読み方がよく分からないままとなっています。 例えば、fgets関数の紹介として ``` char *fgets( char *buffer, int len, FILE *fp); ``` というものがはじめに記され サンプルプログラムは、以下の通りに書かれています。 ``` #include int main() { char str[64]; printf("文字列を入力してください--"); fgets(str, sizeof(str), stdin); str[strlen(str) -1]='\0'; printf("入力した文字列は[%S]ですね\n", str); return 0; } ``` 紹介には、「char*fgets()」とあるのですが、 サンプルでは「fgets()」という形で使われており、 プログラミング内でfgetsを文字列のポインタとして宣言(char*をつける)しなくて良いのだろうか?と 関数の使い方がよく分かりません。 --- サンプルプログラムにあるfgets(str, sizeof(str), stdin);の 「str」については、配列の先頭要素はアドレスを指すため、 fget関数の紹介として書かれていた char *fgets(char *buffer,int len,FILE *fp);のうち、ポインタである 「char *buffer」の部分に相当するのだろう...というところまでなんとか読めている状態です。 詳しい方にはなぜこんなところで...と映るかもしれませんが、 どうぞよろしくお願い致します。
回答: > > プログラミング内でfgetsを文字列のポインタとして宣言(char*をつける)しなくて良いのだろうか?と > > > stdio.h の中で、`char *fgets(~~);` と宣言されています。