大致的代码如下:
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进行调用?
解决方案:10分
b在f2中不可见。
函数是平等的,不是说调用谁谁就是下一级函数,就可以使用上一级的局部变量。
解决方案:10分
假如 b 是个传递到 f2() 中的参数,那就可见,假如没有传递到 f2() 中,那就不可见
解决方案:20分
不要把JS的思想代到C++中来了.
每个变量是有生命周期和作用域的.
auto int b; 这个是函数f1中的变量, 作用域限定在f1内, f2中是不可见的.
每个变量是有生命周期和作用域的.
auto int b; 这个是函数f1中的变量, 作用域限定在f1内, f2中是不可见的.
同理, f1中也对f2中的c不可见