101当我将之前的内容分配x给新的时,为什么不输出x?
int x = 101;
{
int x = x;
std::cout << x << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
输出(垃圾):
422634
我认为第二个x将初始化为101 但它没有初始化.
注意:在这种情况下的解决方案是int x = ::x但问题是它发生的原因.
我遇到了以下代码:
#include<iostream>
using namespace std;
int i = 1;
int main(int argc,char ** argv)
{
int i = i;
cout<<i<<endl; // which i?
return 0;
}
Run Code Online (Sandbox Code Playgroud)
它可以通过编译,但给出错误的答案,如何解释这个?