首页 > 代码库 > C语言存储区域

C语言存储区域

有错误请指教

1.文字常量区域  存储在 代码段   不能被修改 

2.全局变量  静态存储区  存储在  数据段

3.函数中的局部变量 存储在  栈中  

4.malloc  new  中的变量存储在  堆中间

测试  函数  转载  http://blog.csdn.net/u010070526/article/details/41748043

  1. int a = 0; //全局初始化区  
  2. char *p1; //全局未初始化区  
  3. int main() {  
  4. int b; //栈  
  5. char s[] = "abc"; //栈  
  6. char *p2; //栈  
  7. char *p3 = "123456"; //123456在常量区,p3在栈上。  
  8. static int c =0;//全局(静态)初始化区  
  9. p1 = new char[10];  
  10. p2 = new char[20];  
  11. //分配得来得和字节的区域就在堆区。  
  12. strcpy(p1, "123456"); //123456放在常量区,编译器可能会将它与p3所指向的"123456"优化成一个地方。  
  13. }  

C语言存储区域