局部变量、全局变量和静态变量的关系。

心已赠人 2022-08-08 14:48 361阅读 0赞

这里简单的说下局部变量和全局变量和静态变量的关系。

首先,全局变量存储在静态存储区;

局部变量存储在动态存储区,是存储在栈里的;

静态变量 类型说明符是static。

静态变量属于静态存储方式,其存储空间为内存中的静态数据区(在静态存储区内分配存储单元),该区域中的数据在整个程序的运行期间一直占用这些存储空间(在程序整个运行期间都不释放),也可以认为是其内存地址不变,直到整个程序运行结束(相反,而auto自动变量,即动态局部变量,属于动态存储类别,占动态存储空间,函数调用结束后即释放)。静态变量虽在程序的整个执行过程中始终存在,但是在它作用域之外不能使用。

另外,属于静态存储方式的量不一定就是静态变量。 例如:外部变量虽属于静态存储方式,但不一定是静态变量,必须由 static加以定义后才能成为静态外部变量,或称静态全局变量。

所有的全局变量都是静态变量,而局部变量只有定义时加上类型修饰符static,才为局部静态变量。

静态变量可以在任何可以申请的地方申请,一旦申请成功后,它将不再接受其他的同样申请。

静态变量并不是说其就不能改变值,不能改变值的量叫常量。 其拥有的值是可变的 ,而且它会保持最新的值。说其静态,是因为它不会随着函数的调用和退出而发生变化。即上次调用函数的时候,如果我们给静态变量赋予某个值的话,下次函数调用时,这个值保持不变。

此外,

  1. new,malloc分配的内存存储在堆里

发表评论

表情:
评论列表 (有 0 条评论,361人围观)

还没有评论,来说两句吧...

相关阅读

    相关 静态变量全局变量

    静态数据成员和静态函数:与类本身直接相关,而不是与类的各个对象保持关联。通过在成员的声明之前加上关键字static使得其与类关联在一起。 静态数据成员的类型可以是算术类型、常量

    相关 静态变量全局变量

    静态数据成员和静态函数:与类本身直接相关,而不是与类的各个对象保持关联。通过在成员的声明之前加上关键字static使得其与类关联在一起。 静态数据成员的类型可以是算术类型、常量

    相关 java全局变量局部变量

    全局变量是一个运行时刻实体,它在程序的整个执行过程中都存在。全局变量生命周期为程序开始到程序结束。 全局变量显示初始化时,或者未初始化时,在程序映像中有不同的分区:已初始化的全

    相关 python全局变量局部变量

    在函数内部定义的变量叫局部变量,在函数外定义的变量叫全局变量 如果全局变量和局部变量名称相同,则在函数内部用的是局部变量的值,就像就近原则一样;在函数体外,用的还是全局