C++内存模型与引用

内存四区

程序运行前就存在:代码区、全局区 程序运行后存在:栈区、堆区 代码区:存放cpu执行的机器指令,共享的、只读的 全局区:存放全局变量、静态变量、字符串常量,程序结束后系统自动释放 栈区:存放函数参数、局部变量等,函数执行完后自动释放 堆区:程序员分配释放,若不释放程序结束后系统自动释放。一般用new开辟,用delete释放:

1
2
3
4
int* p = new int(10);
delete p;
int* arr = new int[10]; //创建数组
delete[] arr;
## 引用 采用 &来生成一个引用
1
2
int num = 10;
int &b = num; //引用必须初始化,且地址不可再更改
常量引用:用来修饰形参,防止误操作
1
const int& ref = num;  //ref的值不可修改
引用作参数,可修改实参:
1
2
3
void swap(int& a, int& b)//引用作参数,可修改实参
{
}