什么是静态变量 举例 C语言入门
欢迎关注笔者,你的支持是持续更博的最大动力
目录
- 相关描述
- 代码举例
- 相关阅读
- 其他
相关描述
局部变量:定义在函数内部的变量(函数的形参也是局部变量),只能在定义它的函数内部使用
全局变量:定义在函数外面的变量,所有函数都可以使用
静态变量:有全局变量、前面加了“static”关键字的局部变量
区别:
- 静态变量的存放地址,在整个程序运行期间,都是固定不变的。
- 非静态变量(一定是局部变量)地址每次函数调用时都可能不同,只在函数的一次执行期间不变
如果没明确初始化,则静态变量会被自动初始化成全0(每个bit都是0),局部非静态变量的值则随机
代码举例
下面是两段代码,除了第2段多了“static”关键字,其他内容一模一样,但输出结果却不同。
非静态变量
void Func(){int n = 4; //初始化语句 将非静态局部变量n初始化为4,且每次执行Func函数都会运行这一行cout << n << endl; //输出4++n;
}int main(){Func(); Func(); Func(); //在主函数中调用Func函数三次
}
这段代码将输出:
4
4
4
因为每次调用Fun函数,都执行了初始化语句,使得 n = 4, 不论 ++n执行多少次,下次调用函数时,还是会先初始化n。
调用次数 | 过程 | 输出 | 调用结束时n的值 |
---|---|---|---|
第1次 | 初始化 n = 4,输出n,++n | 4 | 5 |
第2次 | 初始化 n = 4,输出n,++n | 4 | 5 |
第3次 | 初始化 n = 4,输出n,++n | 4 | 5 |
静态变量
void Func(){static int n = 4; //初始化语句,有static关键字 将静态局部变量n初始化为4,只在函数第一次被执行的时候执行,静态变量地址固定cout << n << endl; //输出当前n的值,不一定是4++n;
}int main(){Func(); Func(); Func(); //在主函数中调用Func函数三次
}
这段代码将输出:
4
5
6
因为只有第1次调用Func函数时,才执行初始化语句,使得 n = 4,下次执行的时候,不会再执行初始化语句了。所以,第2次、第3次调用Fun函数时,n没有初始化,n的值是上一次调用函数后n的值。
调用次数 | 过程 | 输出 | 调用结束时n的值 |
---|---|---|---|
第1次 | 初始化 n = 4,输出n,++n | 4 | 5 |
第2次 | n = 5,输出n,++n | 5 | 6 |
第3次 | n = 6,输出n,++n | 6 | 7 |
从上面两段代码,可看出静态变量和非静态变量的区别。
相关阅读
- int main 是什么
其他
日常vlog: 点这里去B站~
什么是静态变量 举例 C语言入门相关推荐
- @value 静态变量_C/C++语言中的变量的4种存储类型
所有的数据都有两种类型 (1)数据类型: : 如 int,float 等. (2)存储类型: : 总共有四种存储类型的变量,分别为自动变量(auto).静态变量(static).外部变量(extern ...
- 静态网页制作html语言入门
编辑一个文本文件,代码如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...
- c il语言 定义变量,[转载]Skill语言入门
第一章SKILL 语言基础 1.1 SKILL 语言简介 SKILL 是用于Cadence 软件二次开发的语言.我们关于SKILL 的介绍基于SKILL 语言参考档和Allegro SKILL的应用. ...
- c语言静态变量instance,C语言之单例模式
#include #include #include #include typedef struct _Person{ char name[20] ; int age ; }Person ; //ty ...
- php局部变量和全局变量的区别,PHP局部变量、静态变量、全局变量和超全局变量的使用和区别...
首先,PHP 中从变量的范围上可以分为 4 类,分别是静态变量.局部变量.全局变量和超全局变量. PHP 局部变量与全局变量 在 PHP 中中全局变量和局部变量的定义是和 C 语言类似的.在函数外定义 ...
- C语言 static 声明静态变量?大佬原来用它干这事!
C语言可变参数只会用算啥本事?看我来抽丝剥茧干翻它! 高手在写代码的时候,会特别注重的一点就是,对外的方法对外,不对外的方法和数据,都是让其对外不可见,也就是俗称的,内部不想让别人直接访问的方法,变量 ...
- 《零基础看得懂的C语言入门教程 》——(四)C语言的基本数据类型及变量
一.学习目标 了解C语言的基本数据类型 了解变量的基本概念 了解变量的使用方法 了解了变量的命名方法 了解格式占位符 了解变量的输出 目录 C语言真的很难吗?那是你没看这张图,化整为零轻松学习C语言. ...
- c语言静态变量存在堆还是栈,c 类 static 函数 什么样是静态变量?嵌入式C语言的堆栈管理如何实现...
C语言中静态变量是什么意思,有什么作用,static在数据类型前面表示什么 最近刚看了C存储类的章节.所以来说说. C语言为变量提供了⑤种不同的存储模型,或者说是存储类. ①个变量可以用存储时期描述, ...
- c语言指针访问 静态变量_使用C中的指针访问变量的值
c语言指针访问 静态变量 As we know that a pointer is a special type of variable that is used to store the memor ...
最新文章
- Android图片颜色比例,Android开发学习之路-图片颜色获取器开发(1)
- Gartner:2018年十大科技趋势与其对IT和执行的影响
- 远洋整站下载器不能用https_这可能是最全最好的爆破百度文库下载指南了!
- 2016年全球芯片市场或衰退2.13%
- Learning OpenCV Lecture 5 (Filtering the Images)
- python一些常用函数_【python】常用的一些内置函数
- 关于使用WindowsUpdate 或 Windows 自动升级时碰到的 svchost.exe 进程 CPU 资源占用过高的问题的相关信息...
- 在HTML5 canvas里用卷积核进行图像处理
- Linux 查看命令
- Java基础,不需要使用复杂语句,实现出计算机功能,Java计算机,Java计算器
- spring 中使用tdd_通过JavaScript中基于属性的TDD的钻石方块
- Floyd是咋求图的最短路径?
- matlab半小提琴图,matplotlib – 分开的小提琴图的一半,以比较尾部数据
- 一、Windows系统下安装Tensorflow2.x(2.6)
- 【计算机基础04】Excel习题
- 基于论文分析Google的张量处理器TPU
- 什么是 CSDN ?
- java廖雪峰_廖雪峰Java教程学习笔记(一)——Java程序基础
- 毕设中常出现的定性检验与定量检验的方法及误差指标计算公式【自用】
- 使用pgAdmin对Postgresql数据库导入导出