- ベストアンサー
int
猫でもわかるプログラミングを見ていましたら次のような命令がありました。 int は変数宣言ということですがどのように宣言しているのでしょうか。 int takestone(int *, int, int, int); int main()
- みんなの回答 (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) と書かないとならないですが省略した書き方です。
その他の回答 (2)
- yuizuian
- ベストアンサー率42% (103/245)
関数の宣言でしょうか。 #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言語サイトです。 参考にしてください。
お礼
非常に詳しい説明ありがとうございました。 main ()はint main(void)ではないのでしょうか? ホームページで検索して調べたらそうでした。 http://home.att.ne.jp/sun/ma7/kakorogu35.htm まったく知らないので調べることも大変です。 ありがとうございました。
- SpiralGalaxy
- ベストアンサー率39% (649/1654)
>どのように宣言しているのでしょうか。 質問の意味がよくわかりませんが、 int takestone(int *, int, int, int); はどういう意味かということでしょうか? これは関数 takestone というのがあって、その関数の引数のは int*,int,int,int 型で戻り値は int ですという意味です。決して takestone(int *, int, int, int) という名前の int 変数を定義しているのではありません。
補足
takestone(int*,int,int,int)とは引数が4つで整数ですという意味でしょうか? 最初のint*は何でしょうか。 もう一つ質問に int main()がありますが、他に似たような書き方で main() int main(void) void main(void)などありますがどう違うのでしょうか? お願いします。
お礼
非常に良く分かりました。ありがとうございました。