• ベストアンサー

int

猫でもわかるプログラミングを見ていましたら次のような命令がありました。 int は変数宣言ということですがどのように宣言しているのでしょうか。 int takestone(int *, int, int, int); int main()

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

  • ベストアンサー
回答No.3

>takestone(int*,int,int,int)とは引数が4つで整数ですという意味でしょうか? そうです。こういう風に型宣言をしておけば、呼び出し側で間違えて呼び出したときにコンパイルエラーで引っかかります。 >最初のint*は何でしょうか。 第一引数は int へのポインタです。 >int main()がありますが、他に似たような書き方で >main() >int main(void) >void main(void)などありますがどう違うのでしょうか? main() :引数なしで戻り値が int (省略すると int です) int main(void):引数なしで戻り値が int void main(void):引数なしで戻り値もなしです。 main() 本当は int main(void) と書かないとならないですが省略した書き方です。

konnyaku
質問者

お礼

非常に良く分かりました。ありがとうございました。

その他の回答 (2)

  • yuizuian
  • ベストアンサー率42% (103/245)
回答No.2

関数の宣言でしょうか。 #1の方のおっしゃる通り int takestone(int*,int,int,int)とは 戻り値がint型で、引数はint*、int、int、int型です という意味です。 >引数が4つで整数ですという意味でしょうか? そんな感じですね。 >最初のint*は何でしょうか。 ポインタはご存知ですか? int*はint型のポインタという事になります。 他の引数は変数のコピーを渡しているのですが、int*は変数のアドレスを渡します。 違いとしては、前者は関数内でいくら中の値を変えようと引数の元になった変数の値は変わりませんが、後者は変わります。 ポインタについては、ここで簡単に説明するのが(私には)難しいので、参考URLや書籍等で勉強してください。 int main()とint main(void)は同じ意味です。 voidは省略が可能なので、記述しない場合があるんですよ。 ですから、main()はvoid main(void)と同じという事になります。 voidは最初のうちは「ない」と考えていても良いと思います。 void main(void)…引数も戻り値も無い int main(void)…引数はない、戻り値はint型 参考URLは初心者向けのC言語サイトです。 参考にしてください。

参考URL:
http://www.kumei.ne.jp/c_lang/
konnyaku
質問者

お礼

非常に詳しい説明ありがとうございました。 main ()はint main(void)ではないのでしょうか? ホームページで検索して調べたらそうでした。 http://home.att.ne.jp/sun/ma7/kakorogu35.htm まったく知らないので調べることも大変です。 ありがとうございました。

回答No.1

>どのように宣言しているのでしょうか。 質問の意味がよくわかりませんが、 int takestone(int *, int, int, int); はどういう意味かということでしょうか? これは関数 takestone というのがあって、その関数の引数のは int*,int,int,int 型で戻り値は int ですという意味です。決して takestone(int *, int, int, int) という名前の int 変数を定義しているのではありません。

konnyaku
質問者

補足

takestone(int*,int,int,int)とは引数が4つで整数ですという意味でしょうか? 最初のint*は何でしょうか。 もう一つ質問に int main()がありますが、他に似たような書き方で main() int main(void) void main(void)などありますがどう違うのでしょうか? お願いします。

関連するQ&A

専門家に質問してみよう