卓越飞翔博客卓越飞翔博客

卓越飞翔 - 您值得收藏的技术分享站
技术文章64334本站已运行4115

C语言中的不同存储类

C语言中的不同存储类

问题

C语言中有哪些不同的存储类?用程序解释它们。

解决方案

存储类被定义为存在于C程序中的变量或函数的作用域和生命周期。

存储类

C语言中的存储类如下:

  • auto
  • extern
  • static
  • register

自动变量/局部变量

  • 关键字 - auto
  • 也称为局部变量
  • 作用域 -
    • 局部变量的作用域仅限于声明它们的块内。

    • 这些变量在块内部声明。

  • 默认值 - 垃圾值

示例

 演示

#include<stdio.h>
void main (){
   auto int i=1;{
      auto int i=2;{
         auto int i=3;
         printf ("%d",i);
      }
      printf("%d", i);
   }
   printf("%d", i);
}

输出

3 2 1

全局变量/外部变量

  • 关键字 - extern
  • 这些变量在块外声明因此它们也称为全局变量

  • 作用域 - 全局变量的作用域在整个程序中可用。

  • 默认值 - 零

示例

 实时演示

#include<stdio.h>
extern int i =1; /* this ‘i’ is available throughout program */
main (){
   int i = 3; /* this ‘i' available only in main */
   printf ("%d", i);
   fun ();
}
fun (){
   printf ("%d", i);
}

输出

31

静态变量

  • 关键字 - static
  • 范围 - 静态的范围变量的优点是它在整个程序中以及在函数调用之间保留其值。
  • 静态变量仅初始化一次。
  • 默认值 - 零
  • li>

示例

 现场演示

#include<stdio.h>
main (){
   inc ();
   inc ();
   inc ();
}
inc (){
   static int i =1;
   printf ("%d", i);
   i++;
}

输出

1    2    3

注册变量

  • 关键字 − register
  • 寄存器变量的值存储在CPU寄存器中,而不是存储在内存中,正常变量存储在内存中。

  • 寄存器是CPU中的临时存储单元。

示例

 演示

#include<stdio.h>
main (){
   register int i;
   for (i=1; i< =5; i++)
      printf ("%d",i);
}

输出

1 2 3 4 5
卓越飞翔博客
上一篇: 解析PHP代码细节的利器:利用PHPDepend测量软件指标提升质量
下一篇: 如何利用PHP Late静态绑定实现更好的代码解耦
留言与评论(共有 0 条评论)
   
验证码:
隐藏边栏