>>339
最後の 0 は、大抵の OS では「正常終了」を意味すると合意が得られている(らしい)。
8 や 9 を返した場合、何が起こるかは、その戻り値を使うアプリに依存。
文字、例えば 'a' を返すと、きっと外部に 0x61 を渡す事が出来るかもね。
文字列を返そうとすると、コンパイラに弾かれないかな?
よしんば return (int)"hoge"; としても、外部アプリには "hoge" は届かないはず。
return func(); とすれば、func() の結果が返る。

ちなみに C++ では、main() の return を省略できる。
その場合、return 0 されたものと扱われる。