C++里面static申明的变量是存在哪个区(堆区、栈区、代码区,,其他2个忘了)

发布网友 发布时间:2022-03-24 22:56

我来回答

2个回答

热心网友 时间:2022-03-25 00:25

全局变量、常量,都是在数据区的
函数局部变量在栈上
动态分配的在堆上追问可是五大分区是不是还有一个叫做 全局数据区啊,那static是不是应该存在这里?

追答我说的数据区就是你说的全局数据区,准确的说,其实程序不是这么分区的。。。

运行时,程序文件本身会被整个载入一个内存区域,里面分代码段、数据段(全局变量和常量存在于此,其实数据段不只一个,有只读的也有可读写的)。

栈空间,是在创建一个线程时操作系统分配的,windows默认是1MB。所谓的局部变量,就是在其线程的栈里面保存的,通过移动栈指针来腾出空间。具体的三言两语说不清楚。

堆空间,就很好理解了。

static的,都是全局变量,所以,答案很明显。

热心网友 时间:2022-03-25 01:43

static修饰的所有变量(全局变量,局部变量)都在数据区。初始化的变量在数据区的date区,未初始化的变量在数据区的bss区。
static修饰的函数,和常规一样,放在代码区(text)

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
15.6278s