c语言的存储类型

存储类型:决定开辟的空间在内存的哪个分区

存储类型有四种分别为:auto、extern、static、register

auto:1.只能用来修饰局部变量,修饰的变量存储在栈区。

extern:1.只能用来修饰全局变量,修饰的空间存储在静态区。

              2.修饰全局变量,存储在栈区,程序可以有多个.c文件来构成,但是main函数只能有一个。extern的作用为:告诉编译器,该变量已经在其他文件中定义过了。

static:1.既可以修饰全局变量,也可以修饰局部变量,修饰的变量存储在静态区。

              2.用static修饰局部变量的作用:延长局部变量的生命周期,如果局部变量没有进行,它的值为0,如果初始化了,那么只能初始化一次。

             3.用static修饰的全局变量,只能在本文件内使用(限制作用域)。

register:1.只能修饰局部变量,修饰的变量存储在寄存器中

案例1:

#include <stdio.h>
int main()
{
   int i;
   for (i=0;i<5;i++)         //循环5趟
   {
        int a=0;
         a++;
        printf("%d\n",a);
     }
return 0;
}

运行结果为:

1
1
1
1
1

a为局部变量,进行初始化,值为0,在for循环中进行自加操作值为1,然后输出,如此循环5次,因此运行结果为上图所示。

案例2:

#include <stdio.h>
int main()
{
  int i;
  for (i=0;i<5;i++)
   {
     static int a=0;         //只执行一次
     a++;
     printf("%d\n",a);
   }
return 0;
}

运行结果为:

1
2
3
4
5

a为被static修饰的局部变量,a进行了初始化,因此只初始化一次(即就是int a=0只执行一次),第一趟时a进行自加操作,输出为1,在for循环中循环自加五趟,运行结果如上所示。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值