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 回答