次の関数の動作について混乱しています。以下は私がこだわったいくつかのプログラムです:
ケース1:
void f()
{
printf("wow\t");
}
int main()
{
f();
return 0;
}
期待どおりの出力が得られますwow
。
ケース2:
void f()
{
printf("wow\t");
}
int main()
{
f(f());
return 0;
}
それerror: invalid use of void expression
は明らかです。
ケース3:
int f()
{
printf("wow\t");
}
int main()
{
f(f());
return 0;
}
なぜそれが出力を与えるのwow wow
ですか?
f()
リターンタイプがありint
ます。しかし、その中main
にはどの変数にも格納されていません。またf()
、引数を取りませんでしたが、ケース3の場合、。によって返される引数を取りますf()
。
同じコードはC++では機能しません。