变量作用域3


作用域和连接针对空间上来将的那么时间上有存储时期来负责
存储时期:
1.静态
2.自动
静态是指他在程序运行时一直存在
具有文件作用域的变量具有静态存储时期,但是具有文件作用域的变量,关键子 static 表示连接类型

总上c变量的5中存储类
上述代码如果你调试的话:那么在调试时会跳过static int stay=1;这条语句的,而int fade=1不会跳过!
这说明静态变量(包括文件作用域变量和代码块加有static的变量),在程序加载入内存时,已经存在了

更多请看<<c primer  plus>>12章  

 存储类时期作用域连接声明方式
自动自动代码块代码块内
寄存器自动代码块代码块内,使用register
具有外部连接的静态变量静态文件外部所有函数之外
具有内部连接的静态变量静态文件内部所有函数之外,使用static
空连接的静态静态代码块代码块内,使用static


静态: 一直存在,变量的位置固定不动
重点在具有代码块作用域的静态变量:例如 {static int a;.....}
在代码块中的 static int a ;
                    和 int b;
两者的不同在于初始化的不同

static 的变量,也就是a只在编译是初始化
而b在每次调用时都初始化

#include  < stdio.h >


//
void  Print( void )
{
    
int fade = 1;
    
static int stay = 1;
    printf(
"fade = %d and stay = %d ",fade++,stay++);
}


int  main_scop = 0 ;

int  main()
{

    
for(int i=0;i<2;i++)
    
{
        Print();
    }


    
    
return 0;
}



调试时会跳过static int stay=1;的!!!!!
 
更多详看<<c primer plus>> 12章

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值