为了账号安全,请及时绑定邮箱和手机立即绑定

关于c语言auto变量和static变量区别?

关于c语言auto变量和static变量区别?

白衣染霜花 2019-01-29 10:06:06
关于c语言auto变量和static变量区别
查看完整描述

3 回答

?
红颜莎娜

TA贡献1842条经验 获得超12个赞

自动变量(auto变量)和静态变量(static变量)主要有以下几点区别:
1、static变量存放在静态存储区,在程序整个运行期间都不释放;而auto变量存放在动态存储区,随着生命周期的结束而立即释放。
2、static变量只赋值一次,以后就不用赋值;而auto变量在函数每调用一次都要赋初值。
3、如果用户不对static变量赋初值,则默认为0或'\0';而auto变量为不确定值。

查看完整回答
反对 回复 2019-03-20
?
慕哥9229398

TA贡献1877条经验 获得超6个赞

static 是静态变量 就是在进程运行整个过程中一直存在的 ,函数里的 static变量可以保存上次运行时的值 在下次调用时使用
函数外的 static 变量只在本文件中可以使用 ,在同时编译的其他文件中是不能访问的

auto 变量就是函数运行时存在 函数结束了变量就不存在了,下次再运行到这里,再次使用,结束时再次失效

一时理解不了没关系,慢慢会理解的。

查看完整回答
反对 回复 2019-03-20
?
函数式编程

TA贡献1807条经验 获得超9个赞

在这两段程序中,在第一个中,当主函数每次调用AddOne()函数时,所定义的变量ia的初始值都是1;而在第二个中,主函数第一次调用AddOne()函数时,ia=1,当第二次调用时,ia的初始值就是上一次执行AddOne()函数后ia的值了;
static 是静态变量,其作用域是全局。
auto变量,作用域只是当前函数。

查看完整回答
反对 回复 2019-03-20
  • 3 回答
  • 0 关注
  • 1353 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信