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

2023-11-07

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个问题的相关内容就讨论到此。

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • Candence中查看MOS管阈值电压Vth、Vgs、Vds、跨导gm、Id等详细MOS参数的方法

    Candence中查看MOS管阈值电压Vth Vgs Vds gm Id等详细MOS参数的方法 ADE仿真结束后 点击工具栏Results Print Transient Operating Points 如果是dc仿真就选DC Opera
  • LinearRegression,RidgeCV,LassoCV,ElasticNetCV各自使用场景

    LinearRegression RidgeCV LassoCV ElasticNetCV各自使用场景 概念 线性回归的目的是要得到输出向量Y和输入特征X之间的线性关系 求出线性回归系数 也就是Y X 其中Y的维度为m x 1 X的维度为
  • Sqlilabs-21

    来到了第 21 关 看着 21 关 我知道 第一阶段快结束了 马上要到 啪 给我认真写博文 这一关卡的题目给内容貌似一点都不符合 还是得从 cookie 下手 但肯定不跟20 关一样 通过提交正常的数据 我们可以看到 COOKIE 长的有点
  • 利用opencv提取纸张边缘

    纸张图像边框提取 摆正以及是否填写检测 JockerWong的博客 CSDN博客
  • Qt打包程序发布(适用小白)

    一 概述 自己用Qt写好程序 只能在自己电脑上运行 Debug调试版本 那如何发布 Release版本 呢 可以在别人电脑上运行呢 这篇文章超详细的介绍如何打包发布 二 环境 用QT 5 9 2 QT 5以上都可以 Enigma Virtu
  • 数据分析系列目录

    数据分析系列目录 统计学元知识 从一到全部 python数据分析复盘 爬虫相关库 Scrapy爬虫实例 南方都市报 python数据分析复盘 数据分析相关库之Numpy python数据分析复盘 数据分析相关库之Pandas python数
  • vue 数据导出

    思路 1 点击导出按钮 调用后台接口获取数据fid 2 调用下载接口 获取文件流 3 把文件流传给封装的下载方法 一 在目录下面准备mixins文件里面建file js文件 blobToExcel res name var blob new
  • 怎么用C++编个网站

    1 前言 用各种语言写过一些网站之后 我不禁开始好奇 C 能不能写网站呢 实际上想到这个问题的时候 我就大致有了答案 本文中我们将尝试用C 写一个简单的网站 探索一些细节性的问题 并报告用C 写网站的体验如何 2 准备工作 无论是之前比较传
  • 现代操作系统原理与实践01:操作系统概述

    目录 1 什么是操作系统 1 1 操作系统的功能 1 1 1 对硬件进行管理和抽象 1 1 2 为应用提供服务和管理 1 3 操作系统的结构 1 4 操作系统的发展趋势 1 5 操作系统面临的挑战 1 5 1 操作系统的可扩展性 1 5 2
  • Cacheable序列化配置

    import org springframework cache CacheManager import org springframework cache annotation CachingConfigurerSupport impor
  • IDEA左侧,按照文件夹排序

    看下图 一开始设置了是没有效果的 设置完要双击项目 把项目重新伸缩下 或者重启
  • 接口服务中的日志

    先来看下日志对于一个接口服务的作用 监控服务的状态 一般程序中会增加一些跟踪或者提示性的日志 用来判断服务执行的详细情况 特别是执行一些复合功能的接口或者叫聚合接口非常有利于我们判断接口的执行情况 安全 用来分析调用者的身份信息 防止接口被
  • Linux下安装Gurobi及通行证配置

    Linux下安装配置Gurobi 一 摘要 最近在写基于ROS的MPC控制要用到相应的求解器 商用的Gurobi求解器可以申请免费的license 1 下载Gurobi安装包 Gurobi官方网站 https www gurobi com
  • 完美解决 keil5.25 某宝Jlink无法使用问题

    首先再次声明下 支持正版 打击盗版 有钱就去买个正版的吧 最近开心地给实验室的电脑装上新版的Keil 5 25 可是装完后发现JLINK无法使用了 直接提示SN什么的 总之就是盗版问题 网上找个各种换 KEIL安装目录中的 ARM Segg
  • ERROR: Could not build wheels for dlib, which is required to install pyproject.toml-based project

    ERROR Could not build wheels for dlib which is required to install pyproject toml based project conda install dlib 报错 wh
  • Certificate for <xx.xxx.xxx.xxx> doesn‘t match any of the subject alternative names: [xx.xxxx.xxxx.

    1 用HttpClient发送Https请求报SSLException Certificate for lt 域名 gt doesn t match any of the subject alternative names问题的解决 报错
  • 分享一波js,node,vue等相关的书籍

    作者在空闲时间看了一些关于js node vue等相关的一些书籍 为了方便有需要的朋友一起学习 所以将这些书籍分享给大家 大家如果有需要的可以根据自己的需要下载 书籍清单 css相关 CSS那些事儿 flex布局相关 Flex 3权威指南
  • 修改ip地址软件就打不开_导致网站打不开的原因有哪些

    我们在网上查询资料时经常会遇到网站打不开 浏览器打不开的情况 这是上网时候广大网友经常碰见的问题 那么今天 天企网络将针对网页打不开这一问题问题做一做综合的分析 让您对网站打不开的原因有哪些有一个全面的了解 一 网络设置的问题 这种原因比较
  • CLR via C#(二)线程栈与托管堆

    一 System Object 运行时要求每个类型最终都要从System Object派生 它提供了如下几个基本方法 方法名 说明 Equals 虚方法 两个对象具有相同的值 就返回true GetHashCode 虚方法 返回对象的哈希码
  • Django--request 对象

    目录 request对象方法 request对象介绍 请求相关的常用值 属性介绍 获取数据的方法 request对象方法 当一个页面被请求时 Django就会创建一个包含本次请求原信息的HttpRequest对象 Django会将这个对象自

随机推荐