C语言之数据的存储类别

在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语言学习  查看评论

转载于:https://www.cnblogs.com/kuwoyidai/archive/2010/07/12/1777531.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值