发布网友 发布时间: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)