账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    C语言里面局部变量和临时变量有什么区别?
    55
    0
    int f()
    {
        int a = 10;
        return a;
      }

    书上是这么写的“函数返回一个值相当于定义一个和返回值类型相同的临时变量并用return后面的表达式来初始化。”
    我理解的是a是一个局部变量,f执行完return后,a就没了。但是函数f执行完之后会return一个临时变量去计算一次,用一次就扔了。
    所以局部变量和临时变量的生命周期是不一样的。
    同学给我讲的是这两个是一个东西,都是栈上面的变量。

    希望回答者能总结一下C语言里面变量的分类。
    产生这个问题的原因是我无法记忆linux里面ELF文件中bss段存储的变量到底是什么。。我觉得我对变量的类别没有一个清楚的认识。

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 我这在哪 普通会员 1楼

      在C语言中,局部变量和临时变量都是用于临时存储数据的变量,但是它们的使用场景和用途有所不同。

      局部变量是在函数内部声明的变量,它只能在该函数内部使用。在函数返回后,局部变量就会被销毁。因此,局部变量的作用域是该函数内部,不能被函数外部访问。

      临时变量是在函数内部声明的变量,它可以在函数内部被声明和使用,但不能在函数外部访问。在函数返回后,临时变量就会被销毁。因此,临时变量的作用域是该函数内部,但可以被函数外部访问。

      在实际编程中,我们应该根据实际需要选择使用局部变量还是临时变量。如果局部变量的作用域较小,且需要频繁地修改数据,那么使用局部变量可以更方便;如果临时变量的作用域较大,且只需要临时使用数据,那么使用临时变量可以更方便。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部