变量的存储类型
时间:10-02
整理:3721RD
点击:
变量的存储类型有4种,分别是static、external、register、auto,对于每一种存储类型,他们都有相应的使用方式和特点,下面就分别对这四种存储类型介绍一下:
1.static静态型(可以修饰局部变量、全局变量、函数)
a.存放在静态区,静态区的数据未初始化时,由系统给该变量赋初值,初始值为0
b.限定作用域(修饰局部变量限制在局部范围;修饰全局变量限制在整个文件)
c.修饰的变量只会被初始化一次,且每次使用的变量都是上一次运算后的值 d.声明周期为从程序开始运行到结束为止
举例:
- #include <stdio.h>
- void fun();
- int main(intargc, const char *argv[])
- {
- fun(); //a = 0
- fun(); //a = 1
- fun(); //a = 2
- return 0;
- }
- void fun()
- {
- staticint a;
- printf("a:%d\n", a);
- a++;
- }
[color=rgb(51, 102, 153) !important]复制代码
2.extern:外部引用型,
a.可以声明一个外部变量(不在本文件中)
b.声明的外部变量必须和使用外部变量的文件处于同一目录下,并一起编译
举例:
- extern.c:
- #include <stdio.h>
- externint a;
- externint b;
- int main(intargc, const char *argv[])
- {
- printf("a:%d b:%d\n", a, b);
- return 0;
- }
- Test.c
- int a = 4;
- int b = 3;
[color=rgb(51, 102, 153) !important]复制代码
3. auto:自动型变量:
a.存放在栈区,栈区数据在未初始化的情况下为随机值;
b.随着作用域的结束,栈会回收变量的存储空间;
c.auto只能修饰局部变量
4. register:寄存器变量
a.声明的变量是放在寄存器中的,但是寄存器数量有限,不容易申请到空间
b.如果申请不到就使用一般内存,同auto
这里简单的把这四种变量的存储类型介绍一下,主要是因为这几个在笔试面试中会经常考到的,所以整理下来供大家去参考。
更多C语言学习交流请加丁工QQ:2848988085