C语言笔记 static 关键字

static 关键字

总结:        

        首先static的最主要功能是隐藏,其次因为static变量存放在静态存储区,所以它具备持久性和默认值0。

测试代码:

        static作用于同一个文件中的作用;

        普通局部变量(不加static修饰),存储在栈(动态存储区),使用完毕后立即释放;

        

        

       static修饰局部变量.存储在静态存储区,在代码块开始执行时创建,并且只初始化一次(默认初始化为0(因为存在静态存储区))

        变量的链接属性和作用域不受影响!

      

        注意:<font face="微软雅黑" size=1><b>  这种用法很不常用,存储在静态数据区的变量会在程序刚开始运行时就完成初始化,也是唯一的一次初始化,如果在定义局部变量不赋初值的话,编译时候会自动赋值0(对于数值型变量)或空字符'\0'(对于字符变量)而对自动变量来说,它的值是一个不确定的值.共有两种变量存储在静态存储区:全局变量和static变量,只不过和全局变量比起来,static可以控制变量的可见范围,说到底static还是用来隐藏的.</b></font>

static作用于不同文件中的作用;

static作用于函数,代码块之外的变量;

        修改链接属性,但标识符的存储类型和作用域不受影响;

        test函数由外链接(external)变为内链接(internal);

        隐藏了test函数,test无法被其他文件访问;

        

 

static作用于代码块内部;

        修改变量存储类型,由自动变量(auto)修改为静态变量(static),

补充:静态存储要多占内存(长期占有不释放,而不能像动态存储那样一个存储单元可先后为多个变量使用,节约内存),而降低了程序的可读性,当调用次数多时往往弄不清楚静态局部变量的当前值是什么.因此若非必要,不要多使用局部变量!

写的不对,有待完善,欢迎批评指正!!!

  • 7
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值