竟然有人如此解释关键字中的static

🤩:大家好,我是paperjie,感谢你阅读本文,欢迎一建三连哦。

🥰:这里是C专栏,笔者用重金(时间和精力)打造,基础知识一网打尽,希望可以帮到读者们哦。

😘:不要998,只要一件三连,三连买不了吃亏,买不了上当(写作不易,求求了💓)。


目录

👋前言

😍static的作用

🤩修饰局部变量

🥳修饰全局变量

😎修饰函数

🫠总结


👋前言

在C专栏里,会有对C中一些重要的知识详细概括与分析,且还会对一些题目进行展开讲解,请各位看光敬请期待哦!

😍static的作用

static在C语言中是用来修饰变量与函数的。它具体有三个用法,1修饰局部变量,成为静态局部变量。2修饰全局变量,成为静态全局变量。3修饰函数,称为静态函数。

🤩修饰局部变量

static修饰局部变量,是局部变量的储存位置改变了,是它的生命周期变长了,但作用域没改变。对于上面这句话可以通过画图和代码很好的理解清楚,话不多说,直接上图:

通过结果都是1,我们可以发现没有用static局部变量j一出局部范围就销毁了,下一次循环上来还是0,所以局部变量j的生命周期还在test()这个局部范围里,并没有改变。

通过结果发现j在不断增加,我们可以发现是使用static后j的生命周期变长了,出了test()的范围并不会销毁,j的值很好的延续下去了。

看到这里,相比很多看官老爷会对改变变量的储存位置这个说法感到疑惑叭,在这里就画图给大家解释。看完这个图大家就更深层次理解了叭,🤪没使用static时,j是在栈区储存的局部变量,遵循栈区变量的特点,出了作用域就销毁。 🤪而使用static后j就变成了静态变量,就在静态区中,遵循静态区变量的特点,程序结束才销毁。

🥳修饰全局变量

全局变量具有外部链接属性,在其他源文件中依然可以使用。but 用static修饰全局变量的话,就会改变全局变量的链接属性,使外部链接链接属性变成内部链接属性,只能在自己所在的源文件中使用。

未使用static修饰a:

使用static修饰a:发现编辑器直接报错了,a在test.c这个源文件里无法使用。

😎修饰函数

函数有外部属性,在别的原文件里也能使用,但是在被static修饰后只能在自己所在的原文件里使用,外部属性变成内部属性。

 未使用static:

 使用static:使用后直接报错,无法解析外部符号add这个函数,因为它的外部属性变成了内部属性。


🫠总结

static这个关键字还是有一些作用的,比如你把这份代码想卖给别人,但是又不想别人知道怎么实现的,就可以加上static改变外部链接属性。好啦,就到这里啦,希望各位看官老爷给个一键三连哦 😘

  • 33
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 41
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

paper jie

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值