函数里的变量
约 8 分钟
在函数里 int i; 这样定义出来的变量,叫局部变量。它有两个特点:作用范围只在这个函数内(别的函数看不见),寿命也只到函数结束(函数一返回,它就被销毁)。
void a() {
int i = 5; // 这是 a 的 i
cout << i;
}
void b() {
int i = 99; // 这是 b 的 i,跟上面完全无关
cout << i;
}
两个函数里都有 i,会不会打架?不会。它们是各自函数内的两个不同变量,同名只是巧合,互不影响。就像两个班都有个叫“小明”的同学,点名时不会混。
好处很实际:写函数时不用担心变量名跟别人撞车,循环计数器随便用 i、j。
要区分的是全局变量——写在所有函数外面的变量,谁都能看见、谁都能改。全局变量方便,但容易被某个函数悄悄改乱,出了 bug 很难定位。考试和平时都建议:能用局部变量就别用全局,把数据关在需要它的函数里。
小纸条
两个函数里都有个变量叫 i,会互相干扰吗?
登录 后可看答案