首页 > 其他分享 >局部变量、全局变量和静态变量的含义

局部变量、全局变量和静态变量的含义

时间:2023-09-25 15:58:34浏览次数:36  
标签:变量 静态 局部变量 作用域 全局变量 函数

局部变量、全局变量和静态变量是在程序中用于存储数据的不同类型的变量,它们的作用域和生命周期不同。

  1. 局部变量
    • 局部变量是在函数内部声明的变量,只能在声明它们的函数内部访问。
    • 它们的作用域仅限于声明它们的函数内部,函数执行完毕后会被销毁。
    • 局部变量存储在栈上,因此它们的生命周期与函数调用的开始和结束相关联。
void exampleFunction() {
    int localVar;  // 局部变量
    // ...
}
  1. 全局变量
    • 全局变量是在函数外部声明的变量,可以在程序的任何地方访问。
    • 它们的作用域从声明处开始,直到文件结束,可以被程序中的所有函数访问。
    • 全局变量存储在数据段,其生命周期贯穿整个程序的运行周期。
int globalVar;  // 全局变量

void exampleFunction() {
    // 可以访问全局变量 globalVar
    // ...
}
  1. 静态变量
    • 静态变量可以在函数内部或全局范围声明,但其作用域与局部变量或全局变量不同。
    • 在函数内部声明的静态变量作用域为整个函数,但其生命周期贯穿程序运行周期。
    • 在全局范围声明的静态变量的作用域和生命周期与全局变量相同,但它们仅限于当前文件。
void exampleFunction() {
    static int staticVar;  // 函数内部的静态变量
    // ...
}

static int globalStaticVar;  // 全局范围的静态变量

总之,局部变量只能在其声明的函数内部访问,全局变量可以在整个程序中访问,而静态变量在作用域内保持其值并可保持全局或局部作用域。

标签:变量,静态,局部变量,作用域,全局变量,函数
From: https://www.cnblogs.com/keep--fighting/p/17728070.html

相关文章

  • 静态路由与BFD联动实现快速检测链路状态使路由表快速收敛
     实现目的:1.默认情况,PC1和PC2之间的通信使用AR1-AR9-AR10-AR2链路通信(主链路),当AR1-AR9-AR10-AR2链路中任何一点的链路断开后,路由会以毫秒级速度切换到AR1-AR3-AR2(备链路),实现网络的连通性。2.当主链路恢复后,路由又切回到主线路。 实验前的配置基础:1.配置PC和路由器端口IP;2......
  • core文件里的全局变量偏移了16字节
    源代码里面有这个几张表:126staticstructavl_table*l2_addr_tree;127staticstructavl_table*casa_neighbor_table;128staticstructavl_table*casa_ecmp_table;129staticstructavl_table*casa_neighbor6_table;130staticstructavl_table*casa_nh_rout......
  • Linux配置静态ip
    Centos配置静态ip查看VM的虚拟网络编辑器。取消自动分配IP地址查看NAT设置;(记住网关IP)查看本机上的网络共享中心更改适配器设置选择VMnet8自定义IP地址(保证前3个数一致)设置ip地址,保证前三位一致。Centos网卡配置目录cd/etc/sysconfig/network-scripts#编辑......
  • linux教程:route命令(显示并设置Linux中静态路由表)
    route显示并设置Linux中静态路由表补充说明route命令用来显示并设置Linux内核中的网络路由表,route命令设置的路由主要是静态路由。要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器,或者同时位于两个网络的网关来实现。在Linux系统中设置路由通常是为了解决以下问题:该L......
  • Rust 静态分发和动态分发
    首先定义两个结构体Dog和Cat分别实现AnimaltraittraitAnimal{fnspeak(&self);}structDog;implAnimalforDog{fnspeak(&self){println!("旺旺.....");}}structCat;implAnimalforCat{fnspeak(&self){......
  • pbootcms伪静态教程
    Apache环境和IIS环境默认在根目录加了伪静态规则了,不需要操作,只要主机支持伪静态即可。Nginx环境,请打开nginx.txt文件,把里面的代码复制到配置中,下面我们以宝塔为例,伪静态规则的文件在伪静态代码1location/{2    if (!-e$request_filename){......
  • windows+iis脚本映射方式实现伪静态(包括asp.net)
    一.Windows2008、2012或更高系统     只需要在设置脚本影射的目录下创建web.config文件,其内容为<?xml version="1.0" encoding="UTF-8"?>    <configuration>      <system.webServer>        <handlers>                   ......
  • 代码静态扫描
    1.why?开发->测试(OA)sonarQube在OA测试之前的步骤,主要用于开发阶段把控代码质量:a.祖传级代码如何代码质量检测、优化、重构的标准.b.静态代码分析:(1).针对开发人员编写的源代码(2).在不运行的情况下,仅分析或检查源程序的语法、结构、过程、接口等的正确性,找出代码......
  • Windows环境下的静态库和动态库介绍
    目录一、简介二、lib库的详细说明静态lib库lib导入库两种库的说明两种lib库的相同点和不同点三、visualstudio静态lib库导出和使用一、简介在Windows系统下常见的库有两种一种是以.lib为扩展名的库,也叫lib库。lib库实际上分为两种:一种是静态链接lib库或者叫做静态lib库,另一......
  • 假设 a 是一个由线程 1 和线程 2 共享的初始值为 0 的全局变量,则线程 1 和线程 2 同时
    假设a是一个由线程1和线程2共享的初始值为0的全局变量,则线程1和线程2同时执行下面的代码,最终a的结果不可能是()booleanisOdd=false;for(inti=1;i<=2;++i){if(i%2==1)isOdd=true;elseisOdd=false;a+=i*(isOdd?1:-1);}A:-1B:-2C:0D:1......