(1)栈区 :函数内的临时变量;

(2)堆区 :动态申请的内存,new;

(3)全局区/静态区 :

  全局变量和静态全局变量的存储方式是一样的,区别在于,全局变量在整个源代码中都可以使用,而静态全局变量只能在当前文件中有效(对于全局变量,加上 static 只是改变了变量的作用范围, 而对于某个局部静态变量,加上 static 主要是改变了该变量的生命周期)

(4)代码区 

(5)字符常量区 

1,char *s=“hello”;

   指针 s存在栈区。“hello”存储在字符常量区,*s不能二次赋值 ;

#defineconst的区别:

  1,#define是在预编译阶段,const是在编译和运行阶段起作用;

   2,const会进行类型检查,而#define只有简单的字符串替换,并且替换很多分,而const只存在一份;