为什么此代码打印出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 ++编译了这段代码。
答案 0 :(得分:5)
您只是看到未定义行为的结果。
始终使用-Wall -Werror
进行编译,以防止此类错误蔓延到您的代码中。