C语言存储类别详解:局部与全局变量及其分类

需积分: 9 1 下载量 72 浏览量 更新于2024-08-24 收藏 5.67MB PPT 举报
本资源是一份关于谭浩强C语言第三版课件中存储类别的详细总结,主要针对C语言中变量的存储类别进行了深入解析。存储类别是C语言中一个关键概念,它决定了变量在内存中的存储位置和生命周期。 首先,从作用域角度来看,C语言中的变量主要分为局部变量和全局变量。局部变量根据其特性分为四类: 1. **自动变量**,也称为动态局部变量,它们在函数执行期间创建,函数结束后自动释放,其值随之消失。 2. **静态局部变量**,即使函数结束,它们的值也会被保留,直到程序退出或下一次调用该函数时。 3. **寄存器变量**,虽然名称如此,但并非所有编译器都会将变量直接存储在寄存器中,这类变量同样在函数结束时丢失其值。 4. 形式参数可以定义为自动变量或寄存器变量,取决于编译器的选择。 全局变量则按访问权限不同,分为: 1. **静态外部变量**,仅在本文件内部可见,其生存期从定义时开始至程序结束。 2. **外部变量**(非静态的外部变量),允许其他源文件引用,它们在整个程序范围内有效。 资源还回顾了C语言的历史背景,包括其起源和发展过程。C语言起源于1970年的B语言,由美国贝尔实验室设计,后来D.M.Ritchie在此基础上改进形成了C语言,特别是通过改进后的C语言编写的UNIX第5版。随着UNIX第6版的发布和《The C Programming Language》等经典著作的出版,C语言逐渐流行,被移植到各种类型的计算机上,并在1983年通过ANSI标准化为ANSIC。随着时间的推移,C语言的标准不断更新和完善,例如ANSI C、87ANSIC、ISO C等,直至今日,C语言依然是广泛使用的编程语言之一。 在阅读和学习C语言时,理解存储类别和语言历史背景对于掌握编程实践至关重要,因为不同的编译系统可能有不同的实现细节,这要求开发者熟悉他们所使用的具体编译器的特性。谭浩强的C语言教程提供了基础的指导,建议读者在使用时参考所使用的编译器的手册以确保正确理解和应用C语言。