关于局部变量和全局变量的一个有关问题
关于局部变量和全局变量的一个问题
大概的代码如下:
我的问题是auto int b 在f1中定义的这个变量是否对f1函数中 被调用函数f2();可见?在调用f2()时,f2()可否对f1的变量b进行调用?
------解决思路----------------------
b在f2中不可见。
函数是平等的,不是说调用谁谁就是下一级函数,就可以使用上一级的局部变量。
------解决思路----------------------
如果 b 是个传递到 f2() 中的参数,那就可见,如果没有传递到 f2() 中,那就不可见
------解决思路----------------------
不要把JS的思想代到C++中来了.
每个变量是有生命周期和作用域的.
auto int b; 这个是函数f1中的变量, 作用域限定在f1内, f2中是不可见的.
同理, f1中也对f2中的c不可见
大概的代码如下:
int a;
int main()
{
:
f2();
:
f1();
}
void f1()
{
auto int b;
:
f2();
:
}
void f2()
{
:
static int c;
:
}
我的问题是auto int b 在f1中定义的这个变量是否对f1函数中 被调用函数f2();可见?在调用f2()时,f2()可否对f1的变量b进行调用?
------解决思路----------------------
b在f2中不可见。
函数是平等的,不是说调用谁谁就是下一级函数,就可以使用上一级的局部变量。
------解决思路----------------------
如果 b 是个传递到 f2() 中的参数,那就可见,如果没有传递到 f2() 中,那就不可见
------解决思路----------------------
不要把JS的思想代到C++中来了.
每个变量是有生命周期和作用域的.
auto int b; 这个是函数f1中的变量, 作用域限定在f1内, f2中是不可见的.
同理, f1中也对f2中的c不可见