次の関数の動作について混乱しています。以下は私がこだわったいくつかのプログラムです:
ケース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++では機能しません。