我遇到了以下代码:
#include<iostream>
using namespace std;
int i = 1;
int main(int argc,char ** argv)
{
int i = i;
cout<<i<<endl; // which i?
return 0;
}它可以通过编译,但给出错误的答案,如何解释这一点?
发布于 2014-03-30 09:38:34
局部变量是可访问的,类似于调用两个同名的人,一个在房间里,一个在房间外面。在你试图访问它的范围内的人,听到它。
发布于 2014-03-30 09:40:32
int i = i;语句在main()中声明了一个隐藏全局变量的局部变量。
它用自己初始化自己(它有一个不确定的值)。因此,全局i根本不被使用。
发布于 2014-03-30 09:35:17
最内部作用域中的变量将在没有警告的情况下覆盖同名变量。
https://stackoverflow.com/questions/22742396
复制相似问题