C语言学习笔记——变量的存储类型和作用域

@变量的存储类型

    #自动型(auto)

    #寄存器型(register)

    #外部型(extern)

    #静态型(static)

 

@变量的存储方式

    #静态存储方式

        ##外部型变量(extern)

        ##静态型变量(static)

    #动态存储方式

        ##自动型变量(auto)

        ##寄存器型变量(register)

 

@自动型变量(auto)

    #定义变量时若声明存储类型为auto,则所定义的变量为自动型变量。auto可以省略。定义变量时不特别声明存储类型都为自动变量。

    #格式: static 数据类型 变量表;    

    #例 auto int x; 

 

@静态型变量

    #定义变量时声明存储类型为static,则定义的变量为静态型变量。

    #没有初始化静态变量,系统自动赋值0。

    #静态型变量只有第一次执行定义语句时分配内存,以后每次调用它所在的函数时,不再重新分配内存,不再重新赋值。只是保留上次调用结束的值。

    #格式:static 数据类型 变量表;

    #例:static int x;

 

@寄存器变量(C语言将频繁使用的局部变量的值存储到CPU的通用寄存器)

    #只有局部变量才能定义寄存器型变量,全局变量不行。

    #对于占用字节数较多的变量,long、float、double一般不能定义为寄存器变量

    #寄存器型变量随系统而异,例如微机上的MSC和TC将寄存器型变量实际当作自动变量处理

    #因为CPU通用寄存器数据有限,所以寄存器变量也是有限制,不能无限定义寄存器变量

    #格式:register 数据类型 变量表;

    #例:register int x;

 

@外部变量

    #外部变量是用于多个编译单元之间传递数据,

你可能感兴趣的:(C语言)