码迷,mamicode.com
首页 > 其他好文 > 详细

static关键字的作用

时间:2019-08-20 20:18:14      阅读:95      评论:0      收藏:0      [点我收藏+]

标签:初始   范围   使用   clu   源程序   静态存储区   源文件   print   ++   

1.具有全局的生存期和记忆功能

存储在静态数据区的变量会在程序刚开始运行时就完成初始化,也是唯一的一次初始化。共有两种变量存储在静态存储区:全局变量和static变量,只不过和全局变量比起来,static可以控制变量的可见范围,说到底static还是用来隐藏的。虽然这种用法不常见

PS:如果作为static局部变量在函数内定义,它的生存期为整个源程序,但是其作用域仍与自动变量相同,只能在定义该变量的函数内使用该变量。退出该函数后, 尽管该变量还继续存在,但不能使用它。

#include <stdio.h>
 
int fun(){
    static int count = 10; //在第一次进入这个函数的时候,变量a被初始化为10!并接着自减1,以后每次进入该函数,a
    return count--; //就不会被再次初始化了,仅进行自减1的操作;在static发明前,要达到同样的功能,则只能使用全局变量:    
 
}
 
int count = 1;
 
int main(void)
{
     printf("global\t\tlocal static\n");
     for(; count <= 10; ++count)
               printf("%d\t\t%d\n", count, fun());
     return 0;
}

2.对其他源文件隐藏,不可见

当同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。

3.默认初始值为0

static关键字的作用

标签:初始   范围   使用   clu   源程序   静态存储区   源文件   print   ++   

原文地址:https://www.cnblogs.com/lthuang/p/11385238.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!