C语言中的存储类说明符有哪些?各自的含义如何?

如题所述

其实,这是C中的基础,但是若不是对C有透彻的理解,绝对回答不清楚!
推荐的参考资料:C Primer Plus ,其中有一章专门讲解这个;

在理解C的存储类说明符之前,首先要搞懂的概念有:作用域、生存周期、链接属性

C中存在如下的作用域:代码块作用域、文件作用域
C中变量的生存周期:自动生存周期(自动变量)、静态生存周期(静态变量,在程序运行期间始终存在)
C中变量(函数)的链接属性分为:静态连接属性、自动链接属性,由static关键字标志

C中的存储类说明符实际上是上述属性的不同组合(此处只针对变量而言):
auto 具有代码块作用域,自动生存周期,外部或者内部链接属性
register 具有代码块作用域,自动生存周期,外部或者内部链接属性
static 具有代码块或者文件作用域、静态生存周期、内部链接
extern 具有文件作用域(该关键字用于全局变量)、静态生存周期、外部链接

以上措辞或有不严谨之处,详情请参考参考资料()!

参考资料:C Primer Plus

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-11-04
C语言中auto,register,extern,static
C语言中提供了存储说明符auto,register,extern,static说明的四种存储类别。四种存储类别说明符有两种存储期:自动存储期和静态存储期。其中auto和register对应自动存储期。具有自动存储期的变量在进入声明该变量的程序块是被建立,它在该程序块活动时存在,退出该程序块时撤销。关键字extern和static用来说明具有静态存储期的变量和函数。用static声明的局部变量只能被定义该变量的函数所识别,但是不同于自动变量的是,static变量在其函数被调用退出后,仍保留其值。下次函数被调用时,可以访问最近一次被修改后的值。

这个是我找到的,把网址给你吧
http://blog.csdn.net/q277055799/article/details/6596887本回答被网友采纳
第2个回答  2012-11-03
zhidao.baidu.com/question/493768855
相似回答