(1)栈区 :函数内的临时变量;
(2)堆区 :动态申请的内存,new;
(3)全局区/静态区 :
全局变量和静态全局变量的存储方式是一样的,区别在于,全局变量在整个源代码中都可以使用,而静态全局变量只能在当前文件中有效(对于全局变量,加上 static 只是改变了变量的作用范围, 而对于某个局部静态变量,加上 static 主要是改变了该变量的生命周期)
(4)代码区
(5)字符常量区
1,char *s=“hello”;
指针 s存在栈区。“hello”存储在字符常量区,*s不能二次赋值 ;
#define和const的区别:
1,#define是在预编译阶段,const是在编译和运行阶段起作用;
2,const会进行类型检查,而#define只有简单的字符串替换,并且替换很多分,而const只存在一份;