
练习2.13
#include <iostream>
using namespace std;
int i = 42;
int main() {
int i = 100;
int j = i;
cout << "j = " << j << endl;
system("pause");
}
输出发生在局部变量i定义之后,此时局部变量i
正在作用域内,因此输出语句使用的是局部变量i而非全局变量。
练习2.14
#include <iostream>
using namespace std;
int main() {
int i = 100, sum = 0;
for (int i = 0; i != 10; ++i)
sum += i;
cout << i << " " << sum << endl;
system("pause");
}
在for语句中的int定义于for语句内,在for语句中可以访问int,但是在循环结束之后,此变量的值不能再被访问。当for语句循环结束时,此时for语句中的int实际等于9但不可再被访问,sum被赋值等于100。而函数体内的int仍然等于100。所以注意不要重复初始化以及注意变量的作用域。

本文通过两个C++实例探讨了变量的作用域和生命周期。练习2.13展示了局部变量如何遮蔽全局变量,强调了作用域规则。练习2.14解释了for循环内变量在循环结束后无法再被访问,提醒开发者注意变量的生命周期及其影响。
570

被折叠的 条评论
为什么被折叠?



