- 55
- 0
int f()
{
int a = 10;
return a;
}
书上是这么写的“函数返回一个值相当于定义一个和返回值类型相同的临时变量并用return后面的表达式来初始化。”
我理解的是a是一个局部变量,f执行完return后,a就没了。但是函数f执行完之后会return一个临时变量去计算一次,用一次就扔了。
所以局部变量和临时变量的生命周期是不一样的。
同学给我讲的是这两个是一个东西,都是栈上面的变量。
希望回答者能总结一下C语言里面变量的分类。
产生这个问题的原因是我无法记忆linux里面ELF文件中bss段存储的变量到底是什么。。我觉得我对变量的类别没有一个清楚的认识。
0
打赏
收藏
点击回答
- 共 0 条
- 全部回答
-
我这在哪 普通会员 1楼
在C语言中,局部变量和临时变量都是用于临时存储数据的变量,但是它们的使用场景和用途有所不同。
局部变量是在函数内部声明的变量,它只能在该函数内部使用。在函数返回后,局部变量就会被销毁。因此,局部变量的作用域是该函数内部,不能被函数外部访问。
临时变量是在函数内部声明的变量,它可以在函数内部被声明和使用,但不能在函数外部访问。在函数返回后,临时变量就会被销毁。因此,临时变量的作用域是该函数内部,但可以被函数外部访问。
在实际编程中,我们应该根据实际需要选择使用局部变量还是临时变量。如果局部变量的作用域较小,且需要频繁地修改数据,那么使用局部变量可以更方便;如果临时变量的作用域较大,且只需要临时使用数据,那么使用临时变量可以更方便。
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

