静态全局变量(static int)

2025-05-24 08:30:02 0

静态全局变量(static int)

大家好,静态全局变量相信很多的网友都不是很明白,包括static int也是一样,不过没有关系,接下来就来为大家分享关于静态全局变量和static int的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!

本文目录

static int

因为static变量也就是静态变量,在程序运行过程中被声明后就会一直保存在内存里,所以只能声明一次,第二次再访问那个函数时,给静态变量声明同时赋值的语句就不再执行了,而静态变量的值始终保存在内存里,也就是上次改变以后的值。

没有static修饰的函数中的变量,只在函数被执行时占用内存,函数执行完毕后就被销毁,数据也就不存在了,所以每次都要声明,值也就不会变。

static int n; //定义静态全局变量

改为

int n; //定义全局变量

再次编译运行程序,细心体会全局变量和静态全局变量的区别。

注意:全局变量和全局静态变量的区别

全局变量是不显式用static修饰的全局变量,全局变量默认是有外部链接性的,作用域是整个工程,在一个文件内定义的全局变量,在另一个文件中,通过extern 全局变量名的声明,就可以使用全局变量。

以上内容参考:百度百科-static

静态全局变量和全局变量有什么区别

全局变量(外部变量)的说明之前再冠以static
就构成了静态的全局变量。全局变量本身就是静态存储方式,
静态全局变量当然也是静态存储方式。这两者在存储方式上并无不同。这两者的区别虽在于非静态全局变量的作用域是整个源程序,
当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。
而静态全局变量则限制了其作用域,
即只在定义该变量的源文件内有效,
在同一源程序的其它源文件中不能使用它。由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用,
因此可以避免在其它源文件中引起错误。从以上分析可以看出,
把局部变量改变为静态变量后是改变了它的存储方式即改变了它的生存期。把全局变量改变为静态变量后是改变了它的作用域,
限制了它的使用范围。
static函数与普通函数有什么区别?
只在当前源文件中使用的函数应该说明为内部函数(static),内部函数应该在当前源文件中说明和定义。对于可在当前源文件以外使用的函数,应该在一个头文件中说明,要使用这些函数的源文件要包含这个头文件。

static静态局部变量和静态全局变量的区别详解

一、静态局部变量:
1、static类型的内部变量同auto自动变量(即未加 static 声明的局部变量)一样,是某个特定函数的局部变量,即只能在定义该变量的函数内使用该变量,两者作用域相同;两者的不同在于:auto自动变量会随着函数被调用和退出而存在和消失,而static类局部变量不会,它不管其所在的函数是否被调用,都将一直存在;不过,尽管该变量还继续存在,但不能使用它。倘若再次调用定义它的函数时,它又可继续使用,而且保存了前次被调用后留下的值。换言之,static类型的内部变量是一种只能在某个特定函数中使用,但一直占据存储空间的变量。
2、函数体内如果在定义静态变量的同时进行了初始化,则以后程序不再进行初始化操作(出现在函数内部的基本类型的的静态变量初始化语句只有在第一次调用才执行)。而对自动变量赋初值是在函数调用时进行,每调用一次函数重新给一次初值,相当于执行一次赋值语句。
3、静态局部变量的初始化表达式必须是一个常量或者常量表达式。即使局部静态变量定义时没有赋初值,系统会自动赋初值0(对数值型变量)或空字符(对字符变量);静态变量的初始值为0。而对自动变量auto来说,如果不赋初值则它的值将是个不确定的值。
4、当多次调用一个函数且要求在调用之间保留某些变量的值时,可考虑采用静态局部变量。虽然用全局变量也可以达到上述目的,但全局变量有时会造成意外的副作用(主要是变量的作用域造问题成的),因此仍以采用局部静态变量为宜。
注:局部静态变量占用内存时间较长,并且可读性差,因此,除非必要,尽量避免使用局部静态变量。
二、静态全局变量
全局变量(外部变量)的声明之前再冠以static 就构成了静态的全局变量。全局变量本身就是静态存储方式,静态全局变量当然也是静态存储方式。这两者在存储方式上并无不同。
static静态局部变量和静态全局变量区别
这两者的区别在于:
1、非静态全局变量的作用域是整个源程序,当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。
2、静态全局变量则限制了其作用域, 即只在定义该变量的源文件内有效,在同一源程序的其它源文件中不能使用它。
从以上分析可以看出————
把局部变量改变为静态变量后是改变了它的存储方式,即改变了它的生存期。
把全局变量改变为静态变量后是改变了它的作用域,限制了它的使用范围。static静态变量会被放在程序的全局存储区中(即在程序的全局数据区,而不是在堆栈中分配,所以不会导致堆栈溢出),这样可以在下一次调用的时候还可以保持原来的赋值。这一点是它与堆栈变量和堆变量的区别。

全局变量,静态全局变量和局部变量的区别

全局变量与全局静态变量的区别:
(a)若程序由一个源文件构成时,全局变量与全局静态变量没有区别。
(b)若程序由多个源文件构成时,全局变量与全局静态变量不同:全局静态变量使得该变量成为定义该变量的源文件所独享,即:全局静态变量对组成该程序的其它源文件是无效的。
(c)具有外部链接的静态;可以在所有源文件里调用;除了本文件,其他文件可以通过extern的方式引用;
静态全局变量的作用:
(a)不必担心其它源文件使用相同变量名,彼此相互独立。
(b)在某源文件中定义的静态全局变量不能被其他源文件使用或修改。
(c) 只能在本文件中使用!具有内部链接的静态;不允许在其他文件里调用;

关于静态全局变量和static int的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

静态全局变量(static int)

本文编辑:admin

更多文章:


session已过期重新授权(苹果手机session过期怎么恢复啊)

session已过期重新授权(苹果手机session过期怎么恢复啊)

本篇文章给大家谈谈session已过期重新授权,以及苹果手机session过期怎么恢复啊对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。本文目录苹果手机session过期怎么恢复啊淘宝session过期是什么意思session过期怎么

2026年3月8日 10:00

course词组(course造句)

course词组(course造句)

各位老铁们好,相信很多人对course词组都不是特别的了解,因此呢,今天就来为大家分享下关于course词组以及course造句的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!本文目录course造句有set the c

2026年2月24日 03:00

scrapy中间件(scrapy框架中setting中中间件数字大的先执行么)

scrapy中间件(scrapy框架中setting中中间件数字大的先执行么)

本篇文章给大家谈谈scrapy中间件,以及scrapy框架中setting中中间件数字大的先执行么对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。本文目录scrapy框架中setting中中间件数字大的先执行么Scrapy 主要包括哪

2026年8月22日 13:45

matlab定义变量并赋初值(在matlab中用输入量给变量赋值)

matlab定义变量并赋初值(在matlab中用输入量给变量赋值)

这篇文章给大家聊聊关于matlab定义变量并赋初值,以及在matlab中用输入量给变量赋值对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录在matlab中用输入量给变量赋值matlab预定义变量如何初始化matlab预定义变量

2026年6月11日 15:00

webview是什么(webview是什么东西)

webview是什么(webview是什么东西)

各位老铁们好,相信很多人对webview是什么都不是特别的了解,因此呢,今天就来为大家分享下关于webview是什么以及webview是什么东西的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!本文目录webview是什么

2025年9月4日 07:45

青色颜色名称大全(青色是什么样的颜色,国标是好多)

青色颜色名称大全(青色是什么样的颜色,国标是好多)

这篇文章给大家聊聊关于青色颜色名称大全,以及青色是什么样的颜色,国标是好多对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录青色是什么样的颜色,国标是好多青色有几种颜色古汉语中“青“可以指那几种颜色青色都有哪几种赤橙黄绿青蓝紫,

2025年7月20日 15:30

pentablet(非凡复刻cet-630这块板子想在64位win8环境下正常使用要装哪一版的驱动pentablet_5.35-3试过不行)

pentablet(非凡复刻cet-630这块板子想在64位win8环境下正常使用要装哪一版的驱动pentablet_5.35-3试过不行)

大家好,今天小编来为大家解答以下的问题,关于pentablet,非凡复刻cet-630这块板子想在64位win8环境下正常使用要装哪一版的驱动pentablet_5.35-3试过不行这个很多人还不知道,现在让我们一起来看看吧!本文目录非凡复

2025年6月19日 10:15

微信网页的网址是多少?网页的网址是什么

微信网页的网址是多少?网页的网址是什么

其实网页的网址的问题并不复杂,但是又很多的朋友都不太了解微信网页的网址是多少,因此呢,今天小编就来为大家分享网页的网址的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!本文目录微信网页的网址是多少网页的网址是什么怎么能知道

2026年2月2日 04:45

程序设计语言是如何通过a b+1的(C语言中c=(a+b,a++,b+1);什么意思)

程序设计语言是如何通过a b+1的(C语言中c=(a+b,a++,b+1);什么意思)

其实程序设计语言是如何通过a b+1的的问题并不复杂,但是又很多的朋友都不太了解C语言中c=(a+b,a++,b+1);什么意思,因此呢,今天小编就来为大家分享程序设计语言是如何通过a b+1的的一些知识,希望可以帮助到大家,下面我们一起来

2026年6月29日 19:30

apache中国官网(中国sns交友网站排行前十名分别是什么)

apache中国官网(中国sns交友网站排行前十名分别是什么)

大家好,apache中国官网相信很多的网友都不是很明白,包括中国sns交友网站排行前十名分别是什么也是一样,不过没有关系,接下来就来为大家分享关于apache中国官网和中国sns交友网站排行前十名分别是什么的一些知识点,大家可以关注收藏,免

2025年6月30日 20:45

eclipse创建的项目在哪里(Eclipse的src文件在哪里啊)

eclipse创建的项目在哪里(Eclipse的src文件在哪里啊)

各位老铁们,大家好,今天由我来为大家分享eclipse创建的项目在哪里,以及Eclipse的src文件在哪里啊的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧

2026年8月31日 03:15

什么是函数?js正则查找match()与替换replace()用法实例

什么是函数?js正则查找match()与替换replace()用法实例

大家好,函数相信很多的网友都不是很明白,包括什么是函数也是一样,不过没有关系,接下来就来为大家分享关于函数和什么是函数的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!本文目录什么是函数js正则查找match()与替换re

2025年9月29日 19:00

中级运维工程师需要哪些证书(中级专业技术职称证书有哪些)

中级运维工程师需要哪些证书(中级专业技术职称证书有哪些)

这篇文章给大家聊聊关于中级运维工程师需要哪些证书,以及中级专业技术职称证书有哪些对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录中级专业技术职称证书有哪些网络工程师需要考什么证书中级专业技术职称证书有哪些   技术工作者在获得

2026年8月15日 07:45

powerful 音标(powerful的音标急)

powerful 音标(powerful的音标急)

大家好,如果您还对powerful 音标不太了解,没有关系,今天就由本站为大家分享powerful 音标的知识,包括powerful的音标急的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!本文目录powerful的音标急p

2026年6月10日 21:15

frameset标签的属性(在html标签中的frameset是什么标签 又有哪些属性和值)

frameset标签的属性(在html标签中的frameset是什么标签 又有哪些属性和值)

大家好,今天小编来为大家解答以下的问题,关于frameset标签的属性,在html标签中的frameset是什么标签 又有哪些属性和值这个很多人还不知道,现在让我们一起来看看吧!本文目录在html标签中的frameset是什么标签 又有哪些

2025年12月6日 02:15

enormously是什么意思英语(提高的英文单词)

enormously是什么意思英语(提高的英文单词)

各位老铁们好,相信很多人对enormously是什么意思英语都不是特别的了解,因此呢,今天就来为大家分享下关于enormously是什么意思英语以及提高的英文单词的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!本文目录提

2025年12月21日 01:00

translate最新消息(‘请以最新的信息为准’ 怎么翻译)

translate最新消息(‘请以最新的信息为准’ 怎么翻译)

大家好,translate最新消息相信很多的网友都不是很明白,包括‘请以最新的信息为准’ 怎么翻译也是一样,不过没有关系,接下来就来为大家分享关于translate最新消息和‘请以最新的信息为准’ 怎么翻译的一些知识点,大家可以关注收藏,免

2026年6月5日 08:00

电视剧绝命后卫师是历史事实?绝命后卫师演员表

电视剧绝命后卫师是历史事实?绝命后卫师演员表

今天给各位分享电视剧绝命后卫师是历史事实的知识,其中也会对电视剧绝命后卫师是历史事实进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录电视剧绝命后卫师是历史事实绝命后卫师演员表绝命后卫师苏大强的原型是谁绝命后卫师

2025年8月8日 06:45

thymeleaf使用ajax(如何在Thymeleaf中实现ajax请求url的可靠构造)

thymeleaf使用ajax(如何在Thymeleaf中实现ajax请求url的可靠构造)

其实thymeleaf使用ajax的问题并不复杂,但是又很多的朋友都不太了解如何在Thymeleaf中实现ajax请求url的可靠构造,因此呢,今天小编就来为大家分享thymeleaf使用ajax的一些知识,希望可以帮助到大家,下面我们一起

2025年6月24日 09:00

hurt怎么读(hurt怎么读)

hurt怎么读(hurt怎么读)

大家好,hurt怎么读相信很多的网友都不是很明白,包括hurt怎么读也是一样,不过没有关系,接下来就来为大家分享关于hurt怎么读和hurt怎么读的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!本文目录hurt怎么读hu

2026年2月2日 16:30

近期文章

本站热文

electronics软件(labcenter electronics是什么软件)
2025-05-22 23:45:02 浏览:134
博客是微博吗(博客是微博吗)
2025-05-22 22:45:01 浏览:111
diversity and distribution(悬赏英语短文)
2025-05-23 16:15:02 浏览:107
ios软件开发前景(iOS就业前景怎么样)
2025-05-22 23:00:01 浏览:102
next month(有The next month这个单词吗,和 next month有什么区别)
2025-05-23 02:30:01 浏览:102
patron(patron是什么意思)
2025-05-23 10:30:02 浏览:95
标签列表

热门搜索