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的作用(深度刨析)-创新互联
URL网址:http://azwzsj.com/article/dgdpie.html