求解
#include<iostream>using namespace std;
int i=0;
int main()
{
int i=1;
cout<<"i="<<i<<'\n'; //i=1
{
int i=2;
cout<<"i="<<i<<'\n'; //=2
{
i+=1;
cout<<"i="<<i<<'\n'; //i=3
}
cout<<"i="<<i<<'\n'; //i=3
}
cout<<"i="<<i<<'\n'; //i=1????? 为什么不是 3
return 0;
} 作用域不同,内层的i不是外层i machimilk 发表于 2016-3-19 23:54
作用域不同,内层的i不是外层i
可以详细点吗
那 i+=1;
cout<<"i="<<i<<'\n'; //i=3
}
cout<<"i="<<i<<'\n'; //i=3这个怎么就可以 都叫I 但是他们不是同一个变量,各自有各自的地址而且大括号是有层级的,不过你不用纠结这个,真正编程没人会这么写的,最简单的方法是尽量给变量起名不重复,否则回头看自己程序的时候都蒙圈
页:
[1]