この関数は、必要でない場合でも値を返します。この関数は、どのようにして値を返さないのですか?
#include<iostream>
using namespace std;
int foo(int a,int b)
{
if(a>b)
return a;
else if(a<b)
return b;
}
int main()
{
int x=7,y=7;
cout<<foo(x,y);
return 0;
}
出力である:
7
またそれだけGCCコンパイラに適切な出力を生成する(IはDevのC++を使用しました)。ターボCはゴミ値を生み出しました。 これはどうやって説明できますか?
これは未定義の動作です。あなたは実際に戻り値として何を期待しますか? –
なぜ「7」を「正しい出力」にするべきですか? –
私は何も期待していません。私はそれがどのように返っているのだろうと思っていた。 –