C语言中变量分为局部变量和全局变量;

在程序的开头定义的是全局变量,在函数内部定义的是局部变量。

在这里涉及2个概念,作用域与生命周期。

作用域指的是描述变量在哪段代码中有效;生命周期指的是变量什么时候被创建,什么时候被释放。

特别注意的是当全局变量和局部变量同名时,优先使用的是局部变量。

#include <stdio.h>
#include <stdlib.h>
int global = 2019;int main (){int global = 2020;printf("global = %d\n",global);system("pause");return 0;}

当然,局部变量和全局变量的作用域和生命周期也有相应的定义,如下:

作用域:

局部变量:作用域是变量所在的范围内,也就是变量所在的代码块。

全局变量:作用域是整个工程。

生命周期:

局部变量:进入作用域生命周期开始,出作用域生命周期结束。

全局变量:生命周期是整个程序。

这里涉及另一个关于作用域与生命周期的概念,关键字 Static

关键字Statick可以修饰全局变量、局部变量、函数。

修饰全局变量:作用域发生变化,不再是整个程序,而是当前.c文件。但生命周期还是整个程序。

修饰局部变量:作用域仍然是当前代码块,但生命周期发生变化,生命周期是跟随整个程序。

修饰函数:作用域也是当前.c文件,与修饰全局变量一样。Static只能在当前源文件中使用,不能在其他源文件中使用。

这就是关于全局变量和局部变量,作用域与生命周期的一些相关问题。

好了,今天就这4个问题的相关内容就讨论到此。

C语言中全局变量和局部变量,作用域与生命周期的相关问题。相关推荐

  1. C语言中全局变量和局部变量,内部函数和外部函数的区别

    1.局部变量和全局变量 1.局部变量:即在函数代码块中内部定义的变量名,只在此函数范围内有效.(只在子程序内定义和作用) 在c语言中,局部变量可以和全局变量重名,但是局部变量会覆盖全局变量,从而在引用 ...

  2. C语言中全局变量、局部变量、静态全局变量、静态局部变量的区别 (转)

    1.C++变量根据定义的位置的不同的生命周期,具有不同的作用域,作用域可分为6种: 全局作用域,局部作用域,语句作用域,类作用域,命名空间作用域和文件作用域. 从作用域看: 1>全局变量具有全局 ...

  3. C语言中全局变量、局部变量、静态全局变量、静态局部变量

    1.从作用域看: 1>全局变量具有全局作用域.全局变量只需在一个源文件中定义,就可以作用于所有的源文件.当然,其他不包含全局变量定义的源文件需要用extern 关键字再次声明这个全局变量. 2& ...

  4. C语言中全局变量、局部变量、静态全局变量、静态局部变量的含义

    int a = 0; //全局变量 static int a=0; //静态全局变量 void func() { int b; //局部变量static int b; //静态局部变量 } 全局变量: ...

  5. C语言基础1:初识C语言(转义、注释;数组、操作符、反码、补码、static、define、指针、结构体常变量;局部变量;作用域、生命周期)

    文章目录 C语言基础1:初识C语言 1.C语言简介 1.1什么是C语言 1.2C语言的发展 2.第一个C语言程序 2.1创建项目 2.2添加源文件 2.3写代码 3.数据类型 4.变量.常量 4.1定 ...

  6. C语言初阶-C语言中的数据类型以及变量的作用域和生命周期,常量的类型

    看之前记得先点赞收藏呦!谢谢大家的支持! 目录 一.c语言中的数据类型 注意:这里的long型的定义是>=int所占字节数,所以占4个是没有问题的 二.变量和常量 1.变量的类型 2.变量的作用 ...

  7. python中全局变量和局部变量关键字_Python中全局变量和局部变量的理解与区别

    前言 学过编程的人应该对全局变量与局部变量这两个名词并不陌生,Python也同多数编程语言一样,也有全局变量与局部变量的概念 但是与其他编程语言又有所不同 全局变量与局部变量两者的本质区别就是在于作用 ...

  8. python 局部变量 占内存吗_Python中全局变量和局部变量的理解与区别

    前言 学过编程的人应该对全局变量与局部变量这两个名词并不陌生,Python也同多数编程语言一样,也有全局变量与局部变量的概念 但是与其他编程语言又有所不同 全局变量与局部变量两者的本质区别就是在于作用 ...

  9. C语言中变量的作用域和生命周期

    一.作用域和生命周期: 1.作用域: 通常来说,一段程序代码中所用到的名字并不总是有效 / 可用 的.而限定这个名字的可用性的代码范围就是这个名字的作用域.俗话说的好,"能力越大,责任也就越 ...

最新文章

  1. 机器学习填坑:你知道模型参数和超参数之间的区别吗?
  2. com.tadu.android中文,塔读文学(com.tadu.android) - 6.68 - 应用 - 酷安
  3. Unity C# namespace 命名空间的使用
  4. Scala介绍和安装
  5. Intel超线程技术 Hyper-Threading Technology (5) - 微架构/流水线与超线程技术(前端/执行核)
  6. 小企鹅输入法+v4.0+linux,Ubuntu 11.10中安装fcitx 4.0.1版本小企鹅输入法
  7. 编写高质量JavaScript代码绳之以法(The Essentials of Writing High Quality JavaScript)翻译...
  8. input submit标签的高度和宽度与input text的差异
  9. table td高度设置无效_Bootstrap Blazor 组件介绍 Table(一)
  10. 移动app设计公司流程—APP设计需求分析规范
  11. 进程外Session(用数据库)
  12. CTFmisc常见音频隐写总结
  13. postgresql 累乘
  14. 水星怎么设置网速最快_水星怎么设置路由器的网速
  15. python中单引号的作用_Python中单引号,双引号,3个引号的用法
  16. 三维点云语义分割基础知识
  17. python 标准库库
  18. Financial crime in times of Covid-19 – AML and cyber resilience measures 整理
  19. Android audio 二 AudioRecord 分析上
  20. 金多多简述调整浪的特征十分明显

热门文章

  1. python selenium加载插件
  2. 使用transforms.Compose套件做图像数据变换
  3. pandas 检查某个元素是否在index中
  4. 聚类方法学习(三)亲和力传播算法AP
  5. 解决 jupyter-lab 安装插件后无法使用的问题(重新安装插件无法使用)
  6. java webservice报文过长_年薪百万IT大牛分享及(京东,阿里,58)Java初中高级765道面试题...
  7. python输出字母金字塔可以输入字母和行数的_python实现输入任意一个大写字母生成金字塔的示例...
  8. 可用于wpf的图表控件:WPFTookit Chart
  9. Python3连接MySQL
  10. c语言输入n打印数字菱形,打印数字菱形,急啊,帮帮小女子啊。。。