美文网首页
C语言变量存储

C语言变量存储

作者: 兰帕德 | 来源:发表于2018-09-16 20:52 被阅读0次

C语言中的变量按照生存周期来区分,可以分为静态存储动态存储
一、静态存储
静态存储是在程序运行过程中分配固定的存储空间。静态存储区中存放了整个程序运行过程中的都存在的变量,如全局变量,因此静态存储区也叫做全局存储区。
二、动态存储
动态存储则是在程序运行过程中根据需要进行动态分配存储空间。动态存储区中存放的变量是根据程序运行的需要进行建立和释放的,如函数形参,自动变量,函数调用时的现场保护和返回地址等。
C语言中存储类别分为四类:自动(auto)、静态(static)、寄存器(register)、外部(extern)。
一、自动存储(auto)
用关键字auto定义的变量为自动变量,auto不写则默认为自动存储。自动存储类别属于动态存储方式。

auto int a, b; //定义自动变量a, b

二、静态存储(static)
用static修饰的变量,如果是定义在函数内部,称之为静态局部变量;如果是定义在函数外部,称之为静态外部变量。

static int a; //定义静态变量a

注意,静态局部变量属于静态存储类别,在静态存储区内分配存储单元,在整个程序运行期间都不释放。静态局部变量在编译时赋初值,即只赋初值一次。
三、寄存器变量(register)
为了提高效率,C语言允许将局部变量的值放在CPU的寄存器中,称之为“寄存器变量”,用关键字register进行声明。

register int a; //定义寄存器变量a

注意,只有局部自动变量和形式参数可以作为寄存器变量,局部静态变量不能定义为寄存器变量;一个计算机系统中的寄存器数量有限,因此不能定义任意多个寄存器变量。
四、外部变量(extern)
用extern声明的变量为外部变量,外部变量的意义是某函数可以调用在该函数之后定义的变量。如:

#include <stdio.h>
int main()
{
    extern int a; //声明此处使用的是外部全局变量
    printf("a的值为%d\n", a);
    return 0;
}
int a = 5;

相关文章

  • C语言变量存储

    C语言中的变量按照生存周期来区分,可以分为静态存储和动态存储。一、静态存储静态存储是在程序运行过程中分配固定的存储...

  • 变量的静态存储与动态存储

    首先,静态存储与动态存储都是变量在内存中的存储方式。 C语言中变量分为局部变量(auto)、寄存器变量(regis...

  • C语言:指针1

    一、指针变量定义 C语言两种变量:其中变量(普通变量)存储内容值;地址变量(指针变量)存储地址值。 1.定义格式:...

  • C语言之指针,便于理解

    一、指针变量定义 C语言有两种变量:其中变量(普通变量)存储内容值;地址变量(指针变量)存储地址值。 1、定义的格...

  • iOS 面试题集-03

    1、C语言中static变量和static函数有什么用: 1>、表示变量是静态存储变量,表示变量存放在静态存储区。...

  • c语言的auto和static类型变量

    c语言的auto和static类型变量 auto型变量在函数被调用时,系统为其分配存储空间。auto型变量存储在内...

  • C语言基础教程之存储类

    编程中变量还有生命长短?C语言四种不同的存储类变量 存储类定义C程序中变量和/或函数的范围(可见性)和生命周期。它...

  • C语言的基础知识点总结

    ①关于变量存储的内存分布 C语言把保存所有变量的数据区分为动态存储区和静态存储区。动态存储区使用堆栈来管理的,适合...

  • OC

    变量的存储类别 C语言根据变量的生存周期来划分: 静态存储方式是指在程序运行期间分配固定的存储空间的方式。静态存储...

  • 强制了解const,C语言变量和常量!C语言系列教程!编号零零六

    C语言变量 AC编程语言中的变量是指定的存储器位置,用户可以在程序执行期间存储相同数据类型的不同值。这意味着变量是...

网友评论

      本文标题:C语言变量存储

      本文链接:https://www.haomeiwen.com/subject/dwvxnftx.html