在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语言学习 查看评论
posted on 2010-07-12 23:26  sinbad_li  阅读(292)  评论(0编辑  收藏  举报