首页文章正文

函数内static变量存放位置,static局部变量和全局变量

static定义的变量有什么特点 2023-12-31 20:47 350 墨鱼
static定义的变量有什么特点

函数内static变量存放位置,static局部变量和全局变量

函数内static变量存放位置,static局部变量和全局变量

静态变量属于整个类,也称为类变量。 非静态变量属于对象,也称为实例变量。2.它们存储在内存中的不同位置。2.它们存储在内存中的不同位置。3.它们的访问方式不同。实例变量:对象名。一般程序中的变量用new表示。生成的动态数据存储在堆区,函数内部的自动变量存储在栈区。 自动变量通常会在函数退出时释放空间,静态数据(甚至函数内部的静态局部变量)

1、函数内的static变量

3)作用域:作用域仍然是局部作用域。当定义的函数或语句块结束时,作用域也结束。 注意:使用static修饰局部变量时,会改变局部变量的存储位置。在全局变量前添加关键字static,则全局变量被定义为全局静态变量。 1)在内存中的位置:静态存储区(静态存储区在整个程序运行过程中都存在)2)初始化:未初始化

2、static变量的值在函数调用结束后保留下来

ˇ▂ˇ 也就是说,无论是否有初值,无论是函数内定义的全局变量还是局部变量,只要是用static关键字定义的变量,都会被放在.data数据段中。 bssBSS段:用于存储没有初始值的全局变量。 新的一般程序未经初始化生成的动态数据存放在堆区,函数内部的自动变量存放在栈区。 自动变量通常会在函数退出时释放空间,以及静态数据(甚至函数内部的静态局部变量)

3、函数体内static变量的作用范围

其实C内存模型很简单,所以我自己做了一个图,参考了https://blog.csdn.net/second60/article/details/79946310的图:函数参数、函数内部创建的临时变量都存储在这里1.在局部变量前添加"static"关键字,成为静态局部变量。 2.静态局部变量存储在内存的全局数据区。 静态局部变量不会在函数结束时消失,也不会在每次调用函数时消失。

后台-插件-广告管理-内容页尾部广告(手机)

标签: static局部变量和全局变量

发表评论

评论列表

黑豹加速器 Copyright @ 2011-2022 All Rights Reserved. 版权所有 备案号:京ICP1234567-2号