静态变量在内存哪分配的?是栈里分配还理堆里分配的?

我们的自动变量是在栈里分配的,动态变量是在堆里分配的?那么静态变量在哪分配的呢?

还有一个就是全局变量在哪分配的?也是在栈里分配的吗?

内存不止分为堆和栈,还有另外3个区:
|-----------|
|     栈     |
|-----------|
|      |      |
|     \|/     |
|             |
|     /|\     |
|      |      |
|-----------|
|     堆     |
|-----------|
| 未初始化|
|------------|
|    初始化 |
|------------|
|   正文段 |
|------------|
其中栈是由编译器自动分配释放,堆区是程序员申请释放;
全局变量和静态变量是存储的一起的,全局未初始化变量和静态未初始化变量放在未初始化区(又称BSS区),全局初始化变量和静态初始化变量放在初始化区;
代码的二进制存放在正文段。。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-06-07
全局变量在静态存储区,静态变量也是
相似回答