
问题
C语言中有哪些不同的存储类?用程序解释它们。
解决方案
存储类被定义为存在于C程序中的变量或函数的作用域和生命周期。
存储类
C语言中的存储类如下:
- auto
- extern
- static
- register
自动变量/局部变量
- 关键字 - auto
- 也称为局部变量
-
作用域 -
-
局部变量的作用域仅限于声明它们的块内。
立即学习“C语言免费学习笔记(深入)”;
这些变量在块内部声明。
-
- 默认值 - 垃圾值
示例
演示
网奇CWMS企业网站管理系统 Company Website Manage System采用微软 ASP.NET2.0(C#) 设计,使用分层设计模式,页面高速缓存,是迄今为止国内最先进的.NET语言企业网站管理系统。整套系统的设计构造,完全考虑大中小企业类网站的功能要求,网站的后台功能强大,管理简捷,支持模板机制。使用国际编码,通过xml配置语言,一套系统可同时支持任意多语言。全站可生成各类模拟
#includevoid 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
这些变量在块外声明因此它们也称为全局变量
作用域 - 全局变量的作用域在整个程序中可用。
- 默认值 - 零
示例
实时演示
#includeextern 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>
示例
现场演示
#includemain (){ inc (); inc (); inc (); } inc (){ static int i =1; printf ("%d", i); i++; }
输出
1 2 3
注册变量
- 关键字 − register
寄存器变量的值存储在CPU寄存器中,而不是存储在内存中,正常变量存储在内存中。
寄存器是CPU中的临时存储单元。
示例
演示
#includemain (){ register int i; for (i=1; i< =5; i++) printf ("%d",i); }
输出
1 2 3 4 5










