C语言中的不同存储类

问题

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

解决方案

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

存储类

C语言中的存储类如下:

  • auto
  • extern
  • static
  • register

自动变量/局部变量

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

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

  • 默认值 – 垃圾值

示例

 演示

#include
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
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
main (){
   inc ();
   inc ();
   inc ();
}
inc (){
   static int i =1;
   printf ("%d", i);
   i++;
}

输出

1    2    3

注册变量

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

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

示例

 演示

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

输出

1 2 3 4 5

以上就是C语言中的不同存储类的详细内容。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。