黑马程序员技术交流社区

标题: C语言作用域和生存周期 [打印本页]

作者: koukou    时间: 2014-6-8 18:51
标题: C语言作用域和生存周期
C语言的强大功能之一是可以灵活地定义数据的存储方式。C语言从两个方面控制变量的性质:作用域(scope)和生存期(lifetime)。作用域是指可以存取变量的代码范围,生存期是指可以存取变量的时间范围。

作用域有三种:
extern(外部的)  这是在函数外部定义的变量的缺省存储方式。extern变量的作用域是整个程序。
static(静态的)  在函数外部说明为static的变量的作用域为从定义点到该文件尾部;在函数内部说明为static的变量的作用域为从定义点到该局部程序块尾部。
auto(自动的)  这是在函数内部说明的变量的缺省存储方式。auto变量的作用域为从定义点到该局部程序块尾部。
变量的生存期也有三种,但它们不象作用域那样有预定义的关键字名称。
第一种是extern和static变量的生存期,它从main()函数被调用之前开始,到程序退出时为止。
第二种是函数参数和auto变量的生存期,它从函数调用时开始,到函数返回时为止。
第三种是动态分配的数据的生存期,它从程序调用malloc()或calloc()为数据分配存储空间时开始,到程序调用free()或程序退出时为止。
作者: 黄莉萍    时间: 2014-6-8 22:02
顶一个!
作者: 每天进步一点点    时间: 2014-6-9 11:16
谢谢楼主分享
作者: qddnovo    时间: 2014-6-9 20:55
楼主好人。谢谢楼主分享。
作者: 徐开伟    时间: 2014-6-10 10:16
顶一个。
作者: baby14    时间: 2018-9-16 12:00
多谢分享




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2