C语言:局部变量与全局变量详解及存储属性

需积分: 9 0 下载量 62 浏览量 更新于2024-07-14 收藏 1.48MB PPT 举报
本篇文章主要回顾了C语言中的重要概念——局部变量与全局变量。在C编程中,变量的存储属性是理解程序运行的关键。局部变量是在函数内部定义的,它们的生命周期仅限于该函数,如在`float f1(int a)`和`char f2(int x, int y)`中定义的`b`, `c`, `i`, `j`。这些变量在各自函数的上下文中有效,不同函数中即使有同名变量,也会占据不同的内存单元。 局部变量的存储类型包括`auto`, `register`, 和 `static`,其中`auto`是默认类型,表示自动存储,当函数返回时会被销毁;`register`用于优化寄存器使用,提高代码执行速度;而`static`则使得局部变量的生命周期超过函数调用,即在函数结束后仍保留其值(静态局部变量)。 全局变量(又称外部变量)则是定义在函数外部,如`main()`中的`m`, `n`。全局变量在整个程序的执行过程中都有效,且所有函数都可以访问。然而,为了避免命名冲突,最好为每个函数提供自己的同名局部变量。 文章还介绍了其他C语言的基础概念,如数据类型,包括基本类型(如char, int, float等)、构造类型(如结构体和共用体)。数据类型决定了数据在内存中的存储方式、字节数以及允许的操作。例如,结构体(struct)允许将不同类型的数据打包成一个整体,自定义数据的表示。结构体类型定义时,会描述数据的组织形式,但不直接分配内存,直到实际创建结构体实例时才会占用内存。 共用体(union)则是另一种构造类型,它允许不同类型的变量共享同一段内存空间,但一次只能存储一个成员变量。共用体变量的定义时会根据最长成员分配内存,并且每次只能有一个成员变量占用有效。 最后,文章提到了枚举类型(enum),它是一种特殊的整型数据类型,通过赋予标识符特定的整数值来代表一组命名常量。枚举类型有助于代码的可读性和维护性。 这篇C语言知识回顾详细讲解了局部变量、全局变量以及相关的数据类型、内存管理和结构体等概念,对于理解和编写C程序具有重要的指导意义。