コード:
foo()
{
}
int main()
{
int a=20;
a = foo(20);
printf("\n\n\t A : %d",a); // will print zero.
}
質問 :
foo()のリターンタイプがないことに気付くかもしれません。そして、それは「int」と見なされます、なぜですか?なぜこの「暗黙のint」ルールなのか?なぜCのデザイナーは「int」をそんなに愛したのですか?
foo()にはパラメーター宣言がなく、可変数の引数を受け入れることができると言っています。では、渡された引数はどこに行きますか?例:foo(20)20はどこに行きましたか?
上記の例では、printfはゼロを出力します。なぜですか?
今、考えてみましょう:
foo()
{
}
int main()
{
int a=20;
a = foo(a);
printf("\n\n\t A : %d",a); // It'll print 20.
}
- さて、printfは20を出力します。なぜ以前のように0ではないのですか?