C言語関係掲示板

過去ログ

No.74. return(0) について


int main(void); についてお尋ねします。

上の一文において

なぜ、voidのはずなのに
return(0);
と0を返すのでしょうか?

あと、私の読んだ本にはOSに値を返すということを
書いてありましたが、mainに返すというのはOSに
値を渡しているということなのでしょうか?

初歩的な質問で申し訳ありません。
どうぞよろしくお願いします。


>int main(void); についてお尋ねします。
>
>
>なぜ、voidのはずなのに
>return(0);
>と0を返すのでしょうか?
>

>int main(void); についてお尋ねします。
>
>上の一文において
>
>なぜ、voidのはずなのに
>return(0);
>と0を返すのでしょうか?
>

関数は関数名の変数を求めるのに関数の(){ .... }の部分を使うんです。
これを関数の値といいます。

具体的に書くと、

int main = x;

x を求めるのが関数の本体 { ... return (x); }の部分、
return は関数の終了を表すので、関数の最後に良く書くreturn(0);
というのは、関数の値が 0 だったらその関数が最後まで
正しく実行されましたよ、というおまじないとみたいなもの。

別にこれは main関数だけのものではありません。
例えば printf() は int型の値 printf をもとめる関数で、
関数内部で画面に文字を表示して表示文字数が returnされ、
結果 printf の数値が 表示文字数になります。


なるほど、どうもありがとうございました。

自分で関数の所も読んで、勉強しなおしてみます。

ありがとうございました。


>>int main(void); についてお尋ねします。
>>
>>
>>なぜ、voidのはずなのに
>>return(0);
>>と0を返すのでしょうか?
>>
>
>>int main(void); についてお尋ねします。
>>
>>上の一文において
>>
>>なぜ、voidのはずなのに
>>return(0);
>>と0を返すのでしょうか?
>>
>
>関数は関数名の変数を求めるのに関数の(){ .... }の部分を使うんです。
>これを関数の値といいます。
>
>具体的に書くと、
>
>int main() = x;
>
>x を求めるのが関数の本体 { ... return (x); }の部分、
>return は関数の終了を表すので、関数の最後に良く書くreturn(0);
>というのは、関数の値が 0 だったらその関数が最後まで
>正しく実行されましたよ、というおまじないとみたいなもの。
>
>別にこれは main関数だけのものではありません。
>例えば printf()関数 は int型の値 変数名"printf()" をもとめる関数で、
>関数内部で画面に文字を表示して表示文字数が returnされ、
>結果 "printf()" の数値が 表示文字数になります。

変数の値には括弧が要ります。

printf("%d\n", printf()); -------> 0
printf("%d\n", printf("12345")); -------> 5


なるほど。参考になりました。

どうもありがとうございました。

戻る


「初心者のためのポイント学習C言語」 Last modified:2001.11.15
Copyright(c) 2000-2002 TOMOJI All Rights Reserved