关于局部变量和全局变量的一个问题

C语言 码拜 9年前 (2015-10-20) 906次浏览
大致的代码如下:

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中是不可见的.

同理, f1中也对f2中的c不可见


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明关于局部变量和全局变量的一个问题
喜欢 (0)
[1034331897@qq.com]
分享 (0)