```#include
#include
using namespace std;
int i = 100;
int main() {
// Variable Scope
for (i = 1; i < 5; i++) {
cout << i << " ";
// c++11 std::to_string();
cout << std::to_string(i) + "##";
cout << endl << ::i << endl;
}
cin.get();
return 0;
}
在main函数开头定义局部变量i;
int main()
{
int i;
// Variable Scope
for (i = 1; i < 5; i++) {
因为你这里只有一个地方定义了i(全局定义的),
所以main函数的循环里面的i改动了全局变量的值,所以输出一样
for循环里的i=0 改成 int i=0
for (i = 1; i < 5; i++) // i 被重新赋值
如想程序如你所愿,改成for (int i = 1; i < 5; i++)
这是考查全局变量跟局部变量。你在敲代码时少敲int
在复合语句for循环中定义int i,即在此循环结束时生命周期消失,后面打印的i还是全局变量赋值的100。
但你在循环中并没有定义i,只是赋值,因此全局变量i被循环赋值。