C语言:变量存储类别

任务代码:

外部变量:(用extern声明外部变量:一个文件内的全局变量)

#include <stdio.h>
int max(int,int);
int main( )
{
    extern int a,b; //对全局变量a,b作提前引用声明
    printf("%d\n", max(a,b));
    return 0;
}
int a=15,b=-7;   //定义全局变量a,b
int max(int x,int y)
{
    int z;
    z=x>y?x:y;
    return z;
}

静态变量和自动变量:

#include <stdio.h>
int f(int a)
{
    auto int b=0;
    static int c=3;
    b=b+1;
    c=c+1;
    return a+b+c;
}
int main( )
{
    int a=2,i;
    for(i=0; i<3; i++)
        printf("%d ", f(a));
    printf("\n");
    return 0;
}


静态变量运用:(程序计数器)

#include <stdio.h>
int count_calls()
{
    static int ctr=0;
    return ++ctr;
}
int main( )
{
    int i;
    for(i=0; i<10; i++)
        printf("%d\n", count_calls());
    return 0;
}

关于静态变量初始化:

#include<stdio.h>
void add()
{
    int x=0;
    static int y=0;
    printf("%d,%d\n",x,y);  //0,0,0,2,注意第二次虽然在此命名静态变量y=0,但是上一次执行完的y不会被重新初始化!
    x++;
    y=y+2;  
}


int main()
{
    int i;
    for(i=0; i<2; i++)
        add();
    return 0;
}


执行情况:

执行1:



执行 2:



执行3:


知识总结:


由此引出4种存储类别变量

自动变量:



寄存器变量:

寄存器是cpu的重要组成部分,英语叫cache,是一个运算速率快但是存储空间小的内存。起作用主要用于高速数据缓存交换到运算器和ROM中

因此,寄存器变量用于设置一段程序中重复大量使用的变量;有利于是程序加速!



外部变量

当变量声明位置不在函数之前的时候,想被之前的函数调用,那就需要用外部变量来声明如下:


静态局部变量:(性质如下)

!!当处于函数里面的变量如果设值为静态局部变量,该变量在函数调用结束后不会内存释放吗,会保留!!!!!





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值