在C语言中,变量除了有类型之分,还有四种存储类别:自动存储变量,静态存储变量,外部存储变量,寄存器存储变量。
(1).自动存储变量
1.性质:
--作用域的局部性,其作用域为变量定义所在的模块(一对花括号围起来的部分)内或函数内。
--生存期的暂时性,其生存期为该变量定义所在的函数或模块的执行周期。即一旦进入该函数,c就自动为该变量建立存储区,而一旦退出该函数,c就自动收回此存储区。
--未初始化的变量其值不确定,是无意义的。
(2)定义 关键字auto(也可无),auto int i,j;
举例:
main()
{
int i=100,k=80;
printf("i=%d\n",i);
{
int i=200;
printf("i=%d k=%d\n",i,k++);
}
printf("i=%d k=%d",i,k);
getch();
}
(2)静态存储变量
1.定义: static 数据类型 变量名=初值;
2.种类: 全局和局部两种。
-静态局部存储变量,仅能在所定义的模块内存使用,与AUTO变量不同,它可以保持原值不便:
count_up()
{
static int number=25;
number+=25;
return(number);
}
-静态全局变量,
.性质:作用域-整个程序。生存期的永久性,未初始化的静态变量值为0;
3.静态变量和自动存储变量的区别。
main()
{
count_up();
count_up();
printf("\n");
add();
add();
getch();
}
count_up()
{
static int num0=0;
num0+=25;
printf("%d\t",num0);
}
add()
{
auto int num1=0;
num1+=25;
printf("%d\t",num1);
}
运行结果:
25 50
25 25
(3)外部存储变量
1.用途 用于把大程序分隔若干单元(文件)而开发的场合。说明外部存储变量使用关键字extern。
(4)寄存器存储变量
关键字:register 如:register int e;
寄存器存储变量值存储在CPU的寄存器中,设定这种变量主要是为了提高操作速度。他们常用于循环控制。使用SI,DI寄存器。如果定义寄存器变量超过两个,则多余的按照自动存储变量对待。
阅读全文
类别: c语言学习 查看评论