你能给我解释一下为什么 MingW GCC 在这段代码中不产生警告吗:
int main()
{
int num;
int people[ num ];
cout << people[ 0 ];
cin >> num;
}
但是在这里,我只用 num = 1
替换了最后一条语句,现在有一个警告...
int main()
{
int num;
int people[ num ]; //warning: 'num is used uninitialized..'
cout << people[ 0 ];
num = 1;
}
最佳答案
我认为因为您只使用了第一个元素,所以它优化了第一个示例中的 num 。它只是创建一个单元素数组。在第二种情况下,因为你实际使用了 num,所以它给出了错误
关于c++ - MinGW GCC 在没有警告或错误的情况下编译错误代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5613517/