• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:「*」←この記号はなに?【C言語】)

【C言語】「*」の意味とは?

このQ&Aのポイント
  • C言語の関数における「*」の意味について説明します。ウィキペディアなどで関数のページを見ると「*」が形式の部分で使われていることがありますが、実際にはポインタではありません。
  • 例えば、gets関数を使う場合には、引数として文字列を表すchar型のポインタを渡しますが、関数の宣言では「char *gets(char *s)」となっています。ただし、実際にソースコードで使う際にはポインタを省略して書くことができます。
  • したがって、「*」が関数の宣言に現れる場合でも、実際にはポインタとは異なる意味を持ちます。具体的な意味は関数ごとに異なるので、関数のドキュメントやリファレンスを参照することをおすすめします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Tasuke22
  • ベストアンサー率33% (1799/5383)
回答No.1

getsは関数です。 関数は関数値というものを返します。 その関数値のポインタという意味ですね、きっと。

noname#113783
質問者

お礼

おぉなるほど~!戻り値ですね!あれ関数値とも言うんですね。関数の戻り値を変数に入れられるって初めて知りました。超初心者なんで・・(汗) その後ネットで詳しく調べてみたのですが、 【例文】 :::::::FILE *fp; :::::::if ((fp = fopen("test.txt", "mode")) == NULL) {…} 1.FILEはFILE構造体の事である。FILE構造体とは、今どこを読み書きしているか等FILEを読み書きする為に必要な変数(色んな型)を持っている構造体である。 詳しくはhttp://www.geocities.co.jp/SiliconValley-Bay/7437/c/file.htmを見てほしい。 2.*fpはファイル構造体を参照するためのポインタ(アドレス、住所)を入れる為のポインタ変数。 3.fopenなどのファイルアクセス関数は、test.txt(※1)とmode(※2)によってFILE構造体を展開し、その結果(戻り値)としてFILE構造体のポインタをfpに代入する。 4.後はfpを駆使してファイルを読み込んだり、ファイルに書き込んだりする。 ※1操作するファイルのパス。絶対パスでも相対パスでもOK。 ※2読むだけ、書くだけ、読み書きするだけなどを指定する。r,w,a等がある。バイナリファイルの場合は↓のURLを参照。 http://www.geocities.jp/ky_webid/c/037.html ということでした。よく理解できました。質問して良かった。

その他の回答 (2)

  • masaota56
  • ベストアンサー率41% (58/139)
回答No.3

その場合、*はgetsではなくcharに付いていると見るのが普通だと思います。

noname#113783
質問者

お礼

Thank you!

  • GOOD-Fr
  • ベストアンサー率32% (83/256)
回答No.2

ポインタがわかってないみたいですね。 もう少し自分で努力しましょう。受け取り側のレベルがある程度以上じゃないと回答しても理解できないので。 ちなみに、* は、かけざんでなければポインタです。

noname#113783
質問者

お礼

Thank you!

関連するQ&A