内存分区模型
代码区
1.存放cpu执行的二进制文件。
2.共享的
3.只读的
全局区
1.存放全局变量和静态变量。
2.static关键字。
3.常量区(字符串常量,const修饰的全局变量)。
该区域的数据在程序结束后由操作系统释放。
栈区
由编译器自动分配和释放,存放函数的参数值和局部变量。
注意:不要返回局部变量的地址,栈区开辟的数据由编译器自动释放。
堆区
由程序员分配,若程序员不释放,程序结束时由操作系统回收。
指针本质也是局部变量存放栈区,但指向堆区。
引用
作用: 给变量起别名。
语法: 数据类型 &别名 = 原名。
注意:
引用必须初始化
引用初始化后就不能更改为其他别名。
常量引用
使用场景:用来修饰形参,防止被修改。
//加上const后 编译器将代码改为
//int temp = 10;
//const int &ref =temp;