静态变量,局部变量,全局变量

局部变量、全局变量和静态变量的关系。 这里简单的说下局部变量和全局变量和静态变量的关系。 首先,全局变量存储在静态存储区; 局部变量存储在动态存储区,是存储在栈里的; 静态变量 类型说明符是static。 静态变量属于静态存储方式,其存储空间为内存中的静态数据区(在静态存储区内分配存储单元),该区域中的数据在整个程序的运行期间一直占用这些存储空间(在程序整个运行期间都不释放),也可以认为是其内存地址不变,直到整 阅读详情

原文:http://blog.youkuaiyun.com/zzhays/article/details/7761373

静态变量的类型说明符是static。 静态变量当然是属于静态存储方式,但是属于静态存储方式的量不一定就是静态变量,例如外部变量虽属于静态存储方式,但不一定是静态变量,必须由 static加以定义后才能成为静态外部变量,或称静态全局变量。对于自动变量,它属于动态存储方式。 但是也可以用static定义它为静态自动变量,或称静态局部变量,从而成为静态存储方式。

  由此看来, 一个变量可由static进行再说明,并改变其原有的存储方式。

  1. 静态局部变量

  在局部变量的说明前再加上static说明符就构成静态局部变量。

  例如:

  static int a,b;

  static float array[5]={1,2,3,4,5};

  静态局部变量属于静态存储方式,它具有以下特点:

  (1)静态局部变量在函数内定义,但不象自动变量那样,当调用时就存在,退出函数时就消失。静态局部变量始终存在着,也就是说它的生存期为整个源程序。

  (2)静态局部变量的生存期虽然为整个源程序,但是其作用域仍与自动变量相同,即只能在定义该变量的函数内使用该变量。退出该函数后,尽管该变量还继续存在,但不能使用它。

  (3)允许对构造类静态局部量赋初值。若未赋以初值,则由系统自动赋以0值。

  (4)对基本类型的静态局部变量若在说明时未赋以初值,则系统自动赋予0值。而对自动变量不赋初值,则其值是不定的。 根据静态局部变量的特点, 可以看出它是一种生存期为整个源程序的量。虽然离开定义它的函数后不能使用,但如再次调用定义它的函数时,它又可继续使用,而且保存了前次被调用后留下的值。 因此,当多次调用一个函数且要求在调用之间保留某些变量的值时,可考虑采用静态局部变量。虽然用全局变量也可以达到上述目的,但全局变量有时会造成意外的副作用,因此仍以采用局部静态变量为宜

  2.静态全局变量

  全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。全局变量本身就是静态存储方式, 静态全局变量当然也是静态存储方式。 这两者在存储方式上并无不同。这两者的区别虽在于非静态全局变量的作用域是整个源程序,当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。 而静态全局变量则限制了其作用域, 即只在定义该变量的源文件内有效, 在同一源程序的其它源文件中不能使用它。由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用,因此可以避免在其它源文件中引起错误。从以上分析可以看出, 把局部变量改变为静态变量后是改变了它的存储方式即改变了它的生存期。把全局变量改变为静态变量后是改变了它的作用域,限制了它的使用范围。因此static 这个说明符在不同的地方所起的作用是不同的。应予以注意。

  静态变量

  除范围之外,变量还有存活期,在这一期间变量能够保持它们的值。在应用程序的存活期内一直保持模块级变量和公用变量的值。但是,对于 Dim 声明的局部变量以及声明局部变量的过程,仅当过程在执行时这些局部变量才存在。通常,当一个过程执行完毕,它的局部变量的值就已经不存在,而且变量所占据的内存也被释放。当下一次执行该过程时,它的所有局部变量将重新初始化。

  但可将局部变量定义成静态的,从而保留变量的值。在过程内部用 Static 关键字声明一个或多个变量,其用法和 Dim 语句完全一样:

  Static Depth

  例如,下面的函数将存储在静态变量 Accumulate 中的以前的运营总值与一个新值相加,以计算运营总值。

  Function RunningTotal (num)

  Static ApplesSold

  ApplesSold = ApplesSold + num

  RunningTotal = ApplesSold

  End Function

  如果用 Dim 而不用 Static 声明 ApplesSold,则以前的累计值不会通过调用函数保留下来,函数只会简单地返回调用它的那个相同值。

  在模块的声明段声明 ApplesSold,并使它成为模块级变量,由此也会收到同样效果。但是,这种方法一旦改变变量的范围,过程就不再对变量排他性存取。由于其它过程也可以访问和改变变量的值,所以运营总值也许不可靠,代码将更难于维护。

  声明所有的局部变量为静态变量

  为了使过程中所有的局部变量为静态变量,可在过程头的起始处加上 Static 关键字。例如:

  Static Function RunningTotal (num)

  这就使过程中的所有局部变量都变为静态,无论它们是用 Static、Dim 或 Private 声明的还是隐式声明的。可以将 Static 放在任何 Sub 或 Funtion 过程头的前面,包括事件过程和声明为 Private 的过程。


文章出处:DIY部落(http://www.diybl.com/course/3_program/vc/vc_js/20090215/155523.html)


转载:搜狐博客 

http://wrchen.blog.sohu.com/71617539.html

在讨论全局变量之前我们先要明白几个基本的概念:

1. 编译单元(模块):
    在IDE开发工具大行其道的今天,对于编译的一些概念很多人已经不再清楚了,很多程序员最怕的就是处理连接错误(LINK ERROR), 因为它不像编译错误那样可以给出你程序错误的具体位置,你常常对这种错误感到懊恼,但是如果你经常使用gcc,makefile等工具在linux或者嵌入式下做开发工作的话,那么你可能非常的理解编译与连接的区别!
当在VC这样的开发工具上编写完代码,点击编译按钮准备生成exe文件时,VC其实做了两步工作,第一步,将每个.cpp(.c)和相应.h文件编译成obj文件;第二步,将工程中所有的obj文件进行LINK生成最终的.exe文件,那么错误就有可能在两个地方产生,一个是编译时的错误,这个主要是语法错误,另一个是连接错误,主要是重复定义变量等。我们所说的编译单元就是指在编译阶段生成的每个obj文件,一个obj文件就是一个编译单元,也就是说一个cpp(.c)和它相应的.h文件共同组成了一个编译单元,一个工程由很多个编译单元组成,每个obj文件里包含了变量存储的相对地址等 。

2. 声明与定义的区别
    函数或变量在声明时,并没有给它实际的物理内存空间,它有时候可以保证你的程序编译通过, 但是当函数或变量定义的时候,它就在内存中有了实际的物理空间,如果你在编译模块中引用的外部变量没有在整个工程中任何一个地方定义的话, 那么即使它在编译时可以通过,在连接时也会报错,因为程序在内存中找不到这个变量!你也可以这样理解,
对同一个变量或函数的声明可以有多次,而定义只能有一次!

3. extern的作用
    extern有两个作用,第一个,当它与"C"一起连用时,如: extern "C" void fun(int a, int b); 则告诉编译器在编译fun这个函数名时按着C的规则去翻译相应的函数名而不是C++的, C++的规则在翻译这个函数名时会把fun这个名字变得面目全非,可能是fun@aBc_int_int#%$也可能是别的,这要看编译器的"脾气"了(不同的编译器采用的方法不一样),为什么这么做呢,因为C++支持函数的重载啊,在这里不去过多的论述这个问题,如果你有兴趣可以去网上搜索,相信你可以得到满意的解释!
    当extern不与"C"在一起修饰变量或函数时,如在头文件中: extern int g_Int;  它的作用就是声明函数或全局变量的作用范围的关键字,其声明的函数和变量可以在本模块活其他模块中使用,记住它是一个声明不是定义!也就是说B模块(编译单元)要是引用模块(编译单元)A中定义的全局变量或函数时,它只要包含A模块的头文件即可, 在编译阶段,模块B虽然找不到该函数或变量,但它不会报错,它会在连接时从模块A生成的目标代码中找到此函数。

    如果你对以上几个概念已经非常明白的话,那么让我们一起来看以下几种全局变量/常量的使用区别:

1. 用extern修饰的全局变量
    以上已经说了extern的作用,下面我们来举个例子,如: 
    在test1.h中有下列声明:
    #ifndef TEST1H
    #define TEST1H
    extern char g_str[]; // 声明全局变量g_str
    void fun1();
    #endif
    在test1.cpp中
    #include "test1.h"
    
    char g_str[] = "123456"; // 定义全局变量g_str
    
    void fun1()
    {
        cout << g_str << endl;
    }
    
    以上是test1模块, 它的编译和连接都可以通过,如果我们还有test2模块也想使用g_str,只需要在原文件中引用就可以了
    #include "test1.h"

    void fun2()
    {
        cout << g_str << endl;
    }
    以上test1和test2可以同时编译连接通过,如果你感兴趣的话可以用ultraEdit打开test1.obj,你可以在里面着"123456"这个字符串,但是你却不能在test2.obj里面找到,这是因为g_str是整个工程的全局变量,在内存中只存在一份, test2.obj这个编译单元不需要再有一份了,不然会在连接时报告重复定义这个错误!
    有些人喜欢把全局变量的声明和定义放在一起,这样可以防止忘记了定义,如把上面test1.h改为
    extern char g_str[] = "123456"; // 这个时候相当于没有extern
    然后把test1.cpp中的g_str的定义去掉,这个时候再编译连接test1和test2两个模块时,会报连接错误,这是因为你把全局变量g_str的定义放在了头文件之后,test1.cpp这个模块包含了test1.h所以定义了一次g_str,而 test2.cpp也包含了test1.h所以再一次定义了g_str, 这个时候连接器在连接test1和test2时发现两个g_str。如果你非要把g_str的定义放在test1.h中的话,那么就把test2的代码中#include "test1.h"去掉 换成:
    extern char g_str[];
    void fun2()
    {
        cout << g_str << endl;
    }
    这个时候编译器就知道g_str是引自于外部的一个编译模块了,不会在本模块中再重复定义一个出来,但是我想说这样做非常糟糕,因为你由于无法在test2.cpp中使用#include "test1.h", 那么test1.h中声明的其他函数你也无法使用了,除非也用都用extern修饰,这样的话你光声明的函数就要一大串,而且头文件的作用就是要给外部提供接口使用的,所以 请记住,
只在头文件中做声明,真理总是这么简单。

2. 用static修饰的全局变量
    首先,我要告诉你static与extern是一对“水火不容”的家伙,也就是说extern和static不能同时修饰一个变量;其次,static修饰的全局变量声明与定义同时进行,也就是说当你在头文件中使用static声明了全局变量后,它也同时被定义了;最后,static修饰全局变量的作用域只能是本身的编译单元,也就是说它的“全局”只对本编译单元有效,其他编译单元则看不到它,如:
    test1.h:
    #ifndef TEST1H
    #define TEST1H
    static char g_str[] = "123456"; 
    void fun1();
    #endif

    test1.cpp:
    #include "test1.h"
    
    void fun1()
    {
        cout << g_str << endl;
    }
    
    test2.cpp
    #include "test1.h"
    
    void fun2()
    {
        cout << g_str << endl;
    }
    
    以上两个编译单元可以连接成功, 当你打开test1.obj时,你可以在它里面找到字符串"123456", 同时你也可以在test2.obj中找到它们,它们之所以可以连接成功而没有报重复定义的错误是因为虽然它们有相同的内容,但是存储的物理地址并不一样,就像是两个不同变量赋了相同的值一样,而这两个变量分别作用于它们各自的编译单元。
    也许你比较较真,自己偷偷的跟踪调试上面的代码,结果你发现两个编译单元(test1, test2)的g_str的内存地址相同,于是你下结论static修饰的变量也可以作用于其他模块,但是我要告诉你,那是你的编译器在欺骗你,大多数编译器都对代码都有优化功能,以达到生成的目标程序更节省内存,执行效率更高,当编译器在连接各个编译单元的时候,它会把相同内容的内存只拷贝一份,比如上面的"123456", 位于两个编译单元中的变量都是同样的内容,那么在连接的时候它在内存中就只会存在一份了, 如果你把上面的代码改成下面的样子,你马上就可以拆穿编译器的谎言:
    test1.cpp:
    #include "test1.h"
    
    void fun1()
    {
        g_str[0] = 'a';
        cout << g_str << endl;
    }

    test2.cpp
    #include "test1.h"
    
    void fun2()
    {
        cout << g_str << endl;
    }
    
    void main()
    {
        fun1(); // a23456
        fun2(); // 123456
    }
    
    这个时候你在跟踪代码时,就会发现两个编译单元中的g_str地址并不相同,因为你在一处修改了它,所以编译器被强行的恢复内存的原貌,在内存中存在了两份拷贝给两个模块中的变量使用。

    正是因为static有以上的特性,所以一般定义static全局变量时,都把它放在原文件中而不是头文件,这样就不会给其他模块造成不必要的信息污染,同样记住这个原则吧!
    
3 const修饰的全局常量

    const修饰的全局常量用途很广,比如软件中的错误信息字符串都是用全局常量来定义的。const修饰的全局常量据有跟static相同的特性,即它们只能作用于本编译模块中,但是const可以与extern连用来声明该常量可以作用于其他编译模块中, 如
    extern const char g_str[];
    然后在原文件中别忘了定义:
    const char g_str[] = "123456";

    所以当const单独使用时它就与static相同,而当与extern一起合作的时候,它的特性就跟extern的一样了!所以对const我没有什么可以过多的描述,我只是想提醒你,const char* g_str = "123456" 与 const char g_str[] = "123465"是不同的, 前面那个const 修饰的是char * 而不是g_str,它的g_str并不是常量,它被看做是一个定义了的全局变量(可以被其他编译单元使用), 所以如果你像让char *g_str遵守const的全局常量的规则,最好这么定义const char* const g_str="123456".


分析:全局变量,局部变量,自动变量,静态变量 分析:全局变量,局部变量,自动变量,静态变量标签:C语言 变量by 小威威1.全局变量&&局部变量全局变量指在函数体之外定义的变量; 局部变量指在函数体内部定义的变量。想必大家应该能分清这两个变量,我就不再阐述了。下面首先我要分析全局变量与局部变量出现名称相同的情况。(1)全局变量与局部变量出现名称相同的情况直接上例子:# include <stdio.h> void SomeFunc(floa 阅读详情

相关推荐

西电计组实验一 存储器实验

计组实验报告 实验一 存储器实验——FPGA中LPM_ROM定制与读出实验 一.实验目的   1.掌握FPGA中lpm_ROM的设置,作为只读存储器ROM的工作特性和配置方法;   2.用文本编辑器编辑mif文件配置ROM,学习将程序代码以mif格式文件加载于lpm_ROM中;   3.在初始化存储器编辑窗口编辑mif文件配置ROM;   4.验证FPGA中mega_lpm_ROM的功能。 二.实验原理   ALTERA的FPGA中有许多可调用的LPM (Library Parameterized Modu

Polaris的博客 1万+

局部变量和静态局部变量

局部变量和静态局部变量可能会遇到的几个问题

LM0624的博客 5793

GIS分析-利用K-Means方法进行地震分析

通过“聚类”可以获得有关我们所拥有的数据的各种线索,这是数据挖掘技术之一。分析创建的组有助于决策过程。在这项研究中,我们将使用数据挖掘工具之一的K-Means方法研究安纳托利亚东部地区近100年发生的地震的空间分布,并试图获得有用的信息,以供未来的研究使用。我从局地震目录页面获得了研究所需的地震数据,并从获得了区域边界数据。

gis收藏家的博客 1570

局部变量、全局变量、静态变量

局部变量 定义:局部变量指在程序中只在特定过程或函数中可以访问的变量。换言之,在一个函数内部定义的变量是内部变量,它只在本函数范围内有效,也就是说只有在本函数内才能使用它们,在此函数以外时不能使用这些变量的,它们称为局部变量。 全局变量 定义:在函数外定义的变量是外部变量,外部变量就是全局变量,全局变量可以为本文件中其它函数所共用,它的有效范围从定义变量的位置开始到本源文件结束。 局部变量与全局变...

weixin_45380951的博客 7148

实战测评:4大搜索API(You.com/Tavily/Exa/Perplexity)谁更适合你的AI项目?附Python调用代码

本文实战测评了You.com、Tavily、Exa和Perplexity四大搜索API在AI项目中的集成应用,详细对比了它们的技术特性和Python调用方法。针对LLM实时数据需求,You.com的优化设计表现突出,支持32k大上下文窗口和快速响应。文章提供了完整的代码示例和场景化选型建议,帮助开发者高效集成搜索API到AI项目中。

weixin_42569329的博客 478

初级文章【西门子】字符拼接成字符串

针对S7-400极其以下PLC,1200往上据说有专门的块了呢,首先,我是不用库的,需要什么函数会自己写,OK进入正题。 首先,我们有一个DB块,里面有14个char,一个14位的char数组和一个14位的string。如下图。 我们的目的是将char1-char10拼接成一个string。 第一种方式:第一步,将char放进数组。 ​​​​​​​ 相信大家都能看明白,但是我还是要解释解释 L取值2 T赋值到临时变量DBNO(INT) OPN DB [#DBNO]获取DB块,这一句.

NS_Speak(IVAV) 1万+

局部变量、成员变量、静态变量、常量【超级详细解释】

静态变量是用static关键字修饰的成员变量。它也被称为类变量。静态变量不属于某个特定的对象, 而是属于类本身。无论创建多少个对象, 静态变量都只有一份拷贝, 被所有对象共享。在 Java 中, 常量是用final关键字修饰的变量。final的含义是“最终的, 不可改变的”。一旦一个变量被final修饰, 它的值就不能再被修改了。我们通常将final和static一起使用来创建类级别的常量。

weixin_44748929的博客 1513

【阅读文献笔记】FoundationStereo: Zero-Shot Stereo Matching

提出首个零样本泛化立体匹配基础模型设计 STA 模块融合单目先验提出 AHCF 模块增强代价滤波构建 100 万合成数据集 FSD + 自净化流程。

qq_46460379的博客 1257

全局变量、局部变量和静态变量

全局变量、局部变量和静态变量

qq_38616059的博客 7722

深入解析ChangeFormer:基于Transformer的孪生网络在遥感变化检测中的创新应用

本文深入解析了ChangeFormer这一基于Transformer的孪生网络在遥感变化检测中的创新应用。通过分层Transformer编码器、特征差异计算模块和轻量级MLP解码器的设计,ChangeFormer在LEVIR-CD数据集上取得了90.4%的F1分数,显著优于传统卷积网络。文章还详细探讨了工程化实现、训练调参和模型部署的优化策略,为遥感变化检测领域提供了新的技术范式。

weixin_29051811的博客 731

【RT-DETR有效改进】利用MobileNetV3替换Backbone(轻量化网络结构,提点)

本文给大家带来的改进机制是,其主要改进思想集中在结合硬件感知的网络架构搜索(NAS)和NetAdapt算法,以优化移动设备CPU上的性能。它采用了新颖的架构设计,包括反转残差结构和线性瓶颈层,以及新的高效分割解码器Lite Reduced Atrous Spatial Pyramid Pooling(LR-ASPP),以提升在移动分类、检测和分割任务上的表现。实验表明,MobileNets在资源和准确性的权衡方面表现出色,并在多种应用(如对象检测、细粒度分类、面部属性识别和大规模地理定位)中展现了其有效性。

Snu77的博客 2748

[zt] 静态局部变量

http://hi.baidu.com/sppeivan/blog/item/bb2e0cdc010abc3e5982dd03.html在局部变量前加上“static”关键字,就成了静态局部变量。静态局部变量存放在内存的全局数据区。函数结束时,静态局部变量不会消失,每次该函数调用时,也不会为其重新分配空间。它始终驻留在全局数据区,直到程序运行结束。静态局部变量的初始化与全局变量类似.如果不为其显式初始化,则C++自动为其初始化为0。  静态局部变量与全局变量共享全局数据区,但静态局部变量只在定义它的函数中可

pisheng的专栏 1125

《QT+PCL》点云配准进阶——GROR配准

GROR点云配准

阁楼 1318

局部变量、全局变量和静态变量之间的区别

局部变量、全局变量和静态变量之间的区别 (1)局部变量 定义: 在一个函数内部定义的变量是局部变量,它只在本函数范围内有效。 1.主函数main定义的变量也只在主函数有效; 2.不同函数中可以使用名字相同的变量,它们代表不同的对象,互不干扰; 3.形式参数也是局部变量; 4.在一个函数内部,可以在复合语句中定义变量,这些变量只在本复合语句中有效。 (2)全局变量 定义:在函数外定义的变量是全局变量,全局变量可以为本文件中其它函数所共用,它的有效范围从定义变 量的位置开始到本源文

qq_41519058的博客 8658

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

全局变量、静态变量、局部变量的生存周期与作用域

不管是在全局还是局部声明的static变量都存放于程序的全局变量区域,全局变量也是存放于程序的全局变量区域,所以它们的生命周期是从程序开始到程序结束。 它们的作用域决定于它被存放和定义的位置。

Nine_CC的博客 3万+

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

局部变量、全局变量、静态变量的含义及存储位置

1.局部变量 在一个函数内部定义的变量是内部变量,它只在本函数范围内有效,也就是说只有在本函数内才能使用它们,在此函数以外时不能使用这些变量的,它们称为局部变量。 局部变量保存在动态数据区的栈中,只有在所在函数被调用时才动态地为变量分配存储单元。    1).主函数main中定义的变量也只在主函数中有效.    2).不同函数中可以使用名字相同的变量,它们代表不同的对象,互不干扰.

Don_sandman的博客 1万+

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

全局变量、静态变量、局部变量线程安全问题

1、静态变量 静态变量即静态成员变量。只要有修改变量值的操作,无论是在单例或者非单例都是线程不安全的;而如果线程只是读取变量的值,而不会改变变量的值,这种情况下则是线程是安全的。 产生线程安全问题的原因:静态变量即类变量,只初始化一次,位于方法区,为所有对象共享,共享一份内存,一旦静态变量被修改,其他对象均对修改可见,故线程非安全。 静态变量多线程操作示例: 根据上图代码可知,当线程1执行了number = 1; number = 2; 后,线程2获得执行权,number = 1;然后当线程1获得执行权执

qq_42924666的博客 8174

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

(1)局部变量        在一个函数内部定义的变量是内部变量,它只在本函数范围内有效,也就是说只有在本函数内才能使用它们,在此函数以外时不能使用这些变量的,它们称为局部变量.    1.主函数main中定义的变量也只在主函数中有效,而不因为在主函数中定义而在整个文件或程序中有效.    2.不同函数中可以使用名字相同的变量,它们代表不同的对象,互不干扰.    3.形式参数也使局部变量

w825828482的专栏 1万+

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

<img style="CURSOR: hand" onclick="function onclick(){changeStyle(0);}" src="http://blog.hexun.com/img/xiao.gif" alt="字体变小" /> <img style="CURSOR: hand" onclick="function onclick(){changeSty

songgl的专栏 7754

php局部变量、全局变量、静态变量

局部变量——用在函数内,作用域就是所在函数  全局变量——在函数外,作用域在整个php文件(包含了 include 和 require 引入的文件),但在函数中不能读到,除非在函数内重新申明为global  静态变量——用在函数内,被调用完后,内存不释放,保留最后值,多用来统计累加。  $a 将会在包含文件 b.inc 中生效。  $a 将会在包含文件 b.inc 中生效。 Ph

HongMeiV的专栏 765

全局变量,全局静态变量,局部变量,静态局部变量

全局变量,全局静态变量,局部变量,静态局部变量     术语static有着不寻常的历史.起初,在C中引入关键字static是为了表示退出一个块后仍然存在的局部变量。随后,static在C中有了第二种含义:用来表示不能被其它文件访问的全局变量和函数。为了避免引入新的关键字,所以仍使用static关键字来表示这第二种含义。最后,C++重用了这个关键字,并赋予它与前面不同的第三种含义:表示属

smithdoudou88的专栏 1077

变量:全局变量,局部变量,静态变量,动态变量

全局变量,局部变量,静态变量,动态变量。

quanyy052014的博客 4340

C++中全局变量,局部变量,静态变量和常量

叶子在行动 C++中全局变量,局部变量,静态变量和常量 转自 https://blog.youkuaiyun.com/zcyzsy/article/details/52207085 全局变量 全局变量是在所有函数体的外部定义的,程序的所有部分(其他文件的代码)都可以使用。全局变量不受作用域的影响。全局变量的生命周期一直到程序的结束,全局变量是静态存储方式。如果在一个文件中使用extern关键字来声明另一个文件中存在的全局变量,那么这个文件可以使用这个变量。通常都是在一个.CPP文件的开始声明这个变量,在其他需要用到

编程改变世界的小星 3075

详细讲解局部变量、全局变量、静态变量三种类型

你需要明白的java基础知识之一(变量)

m0_46741750的博客 561
上一篇: 从程序员到技术总监,分享10年开发经验
下一篇: windows7下如何使用myeclipse(eclipse)和cvs进行项目管理
方方
博客等级 码龄15年 6粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值