C语言-变量的寿命

    作者:课课家教育更新于: 2015-12-08 13:39:25

    大神带你学编程,欢迎选课

      在所有的编程语言中变量是有寿命的,就像我们人类似的到了一定岁数就要驾鹤西去。这篇我们就讲讲变量的寿命。

      说到变量的寿命(术语叫做生命周期),那么和它息息相关的就是变量的作用域了。一般来说作用域越大,活的时间越长,作用域越小,活的时间越短,但是并不绝对。那么什么是作用域呢?简单理解就像游戏中你的角色的攻击范围。

      作用域有哪几种?

      auto(自动的): 这是函数内部定义变量的缺省存储方式。auto变量的作用域为从定义点到该局部程序块尾部,作用域结束该类型的变量所占用的内存就会被释放。

    C语言-变量的寿命_编程语言_程序调用_程序结束

      static(静态的): 在函数外部说明为static的变量的作用域为从定义到该文件尾部;在函数内部说明为static的变量的作用域为从定义到该局部程序块尾部。该种类型的变量程序结束所占用的内存才会释放。

      extern(外部的): 这是在函数外部定义的变量的缺省存储方式。extern变量的作用域是整个程序。该种类型的变量也是程序结束所占用的内存才会释放。

      所以根据作用域的不同变量可以分为局部变量和全局变量。局部变量用完就会释放(静态局部变量除外),全局变量程序结束才会释放所占内存。

      生命周期有哪几种?

      根据作用域的不同,生命周期可以分为三种:

      extern和static修饰的变量生命周期比较长,它从程序开始执行开始,到程序退出时为止。依赖整个程序的执行时间。

      函数型参和auto变量的生命周期较短,函数开始它的生命开始,函数结束它的生命也就结束了。依赖于函数的执行时间。

      动态分配数据的生命周期也是动态的,它从调用malloc()或calloc()为数据分配存储空间时开始,到程序调用free()或程序退出时为止。文章学习完是不是意犹未尽,还有很多地方不懂更多视频教程尽在课课家官方网站,让我们一起沉浸在知识的海洋。

C语言 更多推荐

课课家教育

未登录