C语言之关键字static的作用(深度刨析)-创新互联
static用来说明静态变量,并且static的作用分为以下三种:
10年积累的网站设计、成都网站建设经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有洪山免费网站建设让你可以放心的选择与我们合作。1.修饰局部变量-称为静态局部变量
2.修饰全局变量-称为静态全局变量
3.修饰函数-称为静态函数
1.当static修饰局部变量时,使局部变量的生命周期延长,来段代码说明:
a. 我们知道,局部变量进入时创建,出了作用域之后就销毁了 ,而经过static修饰过的局部变量的生命周期会延长,从而导致出了作用域之后局部变量不会被销毁,也就是说代码中的变量a一直存在,存储在内存中(a的地址也不变)。
static int a=1;//当代码运行到这一段时会直接跳过这一行代码,从而导致a的值产生累计的效果。
这样解释你如果可以理解的话,那么我们就进行更深入的解析。
b. 我们的内存分三个区:栈区,堆区,静态区。
而:
int a = 1;//局部变量a是放在栈区的。进了作用域创建,出来作用域销毁。
staic int a = 1;//此时a是静态变量,是存储在静态区的。出了作用域不销毁,直到程序结束才销毁。
c. 所以综上得出结论:static修饰的变量实际上是改变了变量在内存中的存储类型(使得变量从一开始的栈区转移到静态区)从而导致生命周期延长,但是并不影响作用域。
2.static修饰全局变量时,将外部链接属性变成了内部链接属性,使全局变量的作用域只能在该源文件中执行。(全局变量是具有外部链接属性的)
//这里extern是用来申明外部符号的。
仅仅加了一个static就开始报错。
3.static修饰函数时,将外部链接属性变成了内部链接属性,使函数的作用域只能在该源文件中执行(与修饰全局变量十分类似)
那么请留下您的足迹,咱们一起进步!!!
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
当前标题:C语言之关键字static的作用(深度刨析)-创新互联
转载来于:http://ybzwz.com/article/dgdpie.html