欢迎关注笔者,你的支持是持续更博的最大动力

目录

  • 相关描述
  • 代码举例
  • 相关阅读
  • 其他

相关描述

局部变量:定义在函数内部的变量(函数的形参也是局部变量),只能在定义它的函数内部使用
全局变量:定义在函数外面的变量,所有函数都可以使用
静态变量:有全局变量、前面加了“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语言入门相关推荐

  1. @value 静态变量_C/C++语言中的变量的4种存储类型

    所有的数据都有两种类型 (1)数据类型: : 如 int,float 等. (2)存储类型: : 总共有四种存储类型的变量,分别为自动变量(auto).静态变量(static).外部变量(extern ...

  2. 静态网页制作html语言入门

    编辑一个文本文件,代码如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...

  3. c il语言 定义变量,[转载]Skill语言入门

    第一章SKILL 语言基础 1.1 SKILL 语言简介 SKILL 是用于Cadence 软件二次开发的语言.我们关于SKILL 的介绍基于SKILL 语言参考档和Allegro SKILL的应用. ...

  4. c语言静态变量instance,C语言之单例模式

    #include #include #include #include typedef struct _Person{ char name[20] ; int age ; }Person ; //ty ...

  5. php局部变量和全局变量的区别,PHP局部变量、静态变量、全局变量和超全局变量的使用和区别...

    首先,PHP 中从变量的范围上可以分为 4 类,分别是静态变量.局部变量.全局变量和超全局变量. PHP 局部变量与全局变量 在 PHP 中中全局变量和局部变量的定义是和 C 语言类似的.在函数外定义 ...

  6. C语言 static 声明静态变量?大佬原来用它干这事!

    C语言可变参数只会用算啥本事?看我来抽丝剥茧干翻它! 高手在写代码的时候,会特别注重的一点就是,对外的方法对外,不对外的方法和数据,都是让其对外不可见,也就是俗称的,内部不想让别人直接访问的方法,变量 ...

  7. 《零基础看得懂的C语言入门教程 》——(四)C语言的基本数据类型及变量

    一.学习目标 了解C语言的基本数据类型 了解变量的基本概念 了解变量的使用方法 了解了变量的命名方法 了解格式占位符 了解变量的输出 目录 C语言真的很难吗?那是你没看这张图,化整为零轻松学习C语言. ...

  8. c语言静态变量存在堆还是栈,c 类 static 函数 什么样是静态变量?嵌入式C语言的堆栈管理如何实现...

    C语言中静态变量是什么意思,有什么作用,static在数据类型前面表示什么 最近刚看了C存储类的章节.所以来说说. C语言为变量提供了⑤种不同的存储模型,或者说是存储类. ①个变量可以用存储时期描述, ...

  9. c语言指针访问 静态变量_使用C中的指针访问变量的值

    c语言指针访问 静态变量 As we know that a pointer is a special type of variable that is used to store the memor ...

最新文章

  1. Android图片颜色比例,Android开发学习之路-图片颜色获取器开发(1)
  2. Gartner:2018年十大科技趋势与其对IT和执行的影响
  3. 远洋整站下载器不能用https_这可能是最全最好的爆破百度文库下载指南了!
  4. 2016年全球芯片市场或衰退2.13%
  5. Learning OpenCV Lecture 5 (Filtering the Images)
  6. python一些常用函数_【python】常用的一些内置函数
  7. 关于使用WindowsUpdate 或 Windows 自动升级时碰到的 svchost.exe 进程 CPU 资源占用过高的问题的相关信息...
  8. 在HTML5 canvas里用卷积核进行图像处理
  9. Linux 查看命令
  10. Java基础,不需要使用复杂语句,实现出计算机功能,Java计算机,Java计算器
  11. spring 中使用tdd_通过JavaScript中基于属性的TDD的钻石方块
  12. Floyd是咋求图的最短路径?
  13. matlab半小提琴图,matplotlib – 分开的小提琴图的一半,以比较尾部数据
  14. 一、Windows系统下安装Tensorflow2.x(2.6)
  15. 【计算机基础04】Excel习题
  16. 基于论文分析Google的张量处理器TPU
  17. 什么是 CSDN ?
  18. java廖雪峰_廖雪峰Java教程学习笔记(一)——Java程序基础
  19. 毕设中常出现的定性检验与定量检验的方法及误差指标计算公式【自用】
  20. 使用pgAdmin对Postgresql数据库导入导出

热门文章

  1. 计算机网络实验(一)
  2. php 用户同名,DedeCMS会员注册用户名昵称(笔名)同名检查的方法
  3. OSG 各个Example介绍
  4. Python是什么,Python简介
  5. 有哪些值得推荐的 Java 练手项目?(第一天)
  6. dos攻击的服务器修复,主机被dos攻击怎么办
  7. ACM--steps--dyx--1.3.5--开门人和关门人
  8. 15.华清嵌入式--shell脚本
  9. TurboMail邮件系统与中国外汇交易中心合作
  10. 在C#中的总结:C#错误:不能以方法的方式使用不可调用的