分析下作用域!
int i = 100,sum = 0;for(int i = 0;i != 10;++i)
sum += i;
std::cout << i << "\t" << sum << std::endl;
这段代码是错的,因为i被重定义了。
但是,两次定义i是在不同的作用域中啊。for语句中的i是语句作用域吧,将会覆盖第一次的定义啊,在for语句外输出i应该是个没有定义的i啊?
迷惑了,这是c++ primer上的一道题目,问上面的代码输出是什么?
是书的问题还是我们用的编译器问题,反正上面的代码不能通过编译!