1

このコードがn-100を出力するのはなぜですか?

    int hello(int n)
    {
        for(int i = 0; i < n-100; i++)
        {
        }
    }

    int main()
    {
            int h = hello(12);
        cout << hello(12) << " " << h << endl;
    }

ただし、これらの関数は両方ともガベージを返します(それぞれ2665092と0)

    int hello1(int n)
    {
          for(int i = 0; i < 12; i++);
    }


    int hello2(int n)
    {
         (n - 100);
    }

cygwin環境でg++を使用してこのコードをコンパイルしました。

4

1 に答える 1

5

未定義の動作の結果が表示されているだけです。

-Wall -Werrorこの種のバグがコードに忍び寄るのを防ぐために、常にでコンパイルしてください。

于 2013-02-10T17:23:14.393 に答える