摘要:本篇主要介绍了c语言入门到精通--C语言 static的使用,通过具体的内容展现,希望对C语言开发的学习有一定的帮助。
本篇主要介绍了c语言入门到精通--C语言 static的使用,通过具体的内容展现,希望对C语言开发的学习有一定的帮助。
你知道C语言中 static 有几种用法?
1.static 可以修饰局部变量
首先让我看看这段代码
#include<stdio.h>
void test()
{
int a = 1;
a = a + 1;
printf("%d", a);
}
int main()
{
int i = 0;
while (i < 10)
{
test();
i++;
}
return 0;
}
你认为输出的结果是什么呢?
那为什么结果是2222222222呢
因为局部变量 a 进入这个范围创建 出了这个范围销毁 所以结果都是2
当我们加上static 的结果又会是什么
那为什么加上 static 结果就不一样了
我们研究一下static的使用原理
我们的内存分为三大类
我们的局部变量放在栈区
而static把a放在了静态区 而在静态区的变量 出了他的范围是不销毁的
我们对比一下 可能更加直观
所以 static 修饰局部变量的时候,其实改变的是局部变量得存储位置
静态得局部变量是放在静态区,放在静态区的变量出了作用域是不会销毁的,相当于生命周期延长了。
补充 变量的作用域是不变的,只是生命周期延长了
2. static 可以修饰全局变量
我们再创建一个源文件
全局变量的作用域是整个工程
如果我们想引用另一个源文件的函数 这里我们不得不说 extern 这个关键字
如图
static 可以修饰全局变量 如果我们再全局变量前 加上static会是什么结果呢
此时就会报错
一个全局变量具有外部链接属性的 (就是可以被其他源文件引用)但是被static 修饰后外部链接属性就变成了内部链接属性 只能在自己所在的源文件内部使用不能在其他文件内部使用
所以再次调试的时候就会报错
那 static 修饰的全局变量的本质是 外部链接属性发生改变 而不是他的作用域变小
static 修饰全局变量的意义是 如果你定义了一个全局变量 别人用 extern 就可以随便使用
如果你不想让别人看 就可以用static .
3.static 可以修饰函数
我们用另一个源文件创建一个函数 如图
用 关键字extern 声明后 调试结果
这里我们在函数前加上static 又会是什么结果呢
其实一个函数本身具有外部链接属性 被static修饰后 外部链接属性变成了内部链接属性 只能在源2.c 内部使用 其他源文件无法使用 使用上感觉作用域变小
我们可以发现 static 修饰全局变量和修饰函数用法一样
总结一下
当我们使用一个局部变量 出了他的范围 不希望他被销毁下次进来之后还在 那我们就可以拿static 修饰
当我们希望一个全部变量 在他自己源文件使用 任意其他地方不想让别人看到 也可以用static修饰
当我们写的函数只是自己用一下 不希望别人引用 则也可以用static修饰
✅ 扫码免费获取IT基础课程 · IT技术干货 · 答疑解惑 · 职业测评
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式 IT培训就业服务领导者 沪ICP备13042190号-4
上海 海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号
哆哆女性网自荐材料深圳专业网站制作生辰八字起名字 女孩安卓ui设计培训网站哪里好zsk珠宝旗舰店网站条幅广告制作起名免费软件版小程序的营销推广的吕梁网站制作公司永州红网柘城十大旅游景点起个国外公司名字校园微网站建设软装设计学习网站女宝宝起名璟字的有哪些政府网站栏目建设怎么用周易算命书院名称怎么起利用模板制作网站天津建设网站培训周易六十四卦卦辞解析给未出生的宝宝起乳名营销推广策划生辰八字与四柱起名2020年起名鼠seo关键词优化经验技巧入党积极分子思想汇报2021年抓包软件唐山网站建设费用广东省常委淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻不负春光新的一天从800个哈欠开始有个姐真把千机伞做出来了国产伟哥去年销售近13亿充个话费竟沦为间接洗钱工具重庆警方辟谣“男子杀人焚尸”男子给前妻转账 现任妻子起诉要回春分繁花正当时呼北高速交通事故已致14人死亡杨洋拄拐现身医院月嫂回应掌掴婴儿是在赶虫子男孩疑遭霸凌 家长讨说法被踢出群因自嘲式简历走红的教授更新简介网友建议重庆地铁不准乘客携带菜筐清明节放假3天调休1天郑州一火锅店爆改成麻辣烫店19岁小伙救下5人后溺亡 多方发声两大学生合买彩票中奖一人不认账张家界的山上“长”满了韩国人?单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#青海通报栏杆断裂小学生跌落住进ICU代拍被何赛飞拿着魔杖追着打315晚会后胖东来又人满为患了当地回应沈阳致3死车祸车主疑毒驾武汉大学樱花即将进入盛花期张立群任西安交通大学校长为江西彩礼“减负”的“试婚人”网友洛杉矶偶遇贾玲倪萍分享减重40斤方法男孩8年未见母亲被告知被遗忘小米汽车超级工厂正式揭幕周杰伦一审败诉网易特朗普谈“凯特王妃P图照”考生莫言也上北大硕士复试名单了妈妈回应孩子在校撞护栏坠楼恒大被罚41.75亿到底怎么缴男子持台球杆殴打2名女店员被抓校方回应护栏损坏小学生课间坠楼外国人感慨凌晨的中国很安全火箭最近9战8胜1负王树国3次鞠躬告别西交大师生房客欠租失踪 房东直发愁萧美琴窜访捷克 外交部回应山西省委原副书记商黎光被逮捕阿根廷将发行1万与2万面值的纸币英国王室又一合照被质疑P图男子被猫抓伤后确诊“猫抓病”