C++内存模型与引用
内存四区
程序运行前就存在:代码区、全局区 程序运行后存在:栈区、堆区
代码区:存放cpu执行的机器指令,共享的、只读的
全局区:存放全局变量、静态变量、字符串常量,程序结束后系统自动释放
栈区:存放函数参数、局部变量等,函数执行完后自动释放
堆区:程序员分配释放,若不释放程序结束后系统自动释放。一般用new开辟,用delete释放:
## 引用 采用 &来生成一个引用 1
2
3
4int* p = new int(10);
delete p;
int* arr = new int[10]; //创建数组
delete[] arr;
常量引用:用来修饰形参,防止误操作 1
2int num = 10;
int &b = num; //引用必须初始化,且地址不可再更改
引用作参数,可修改实参: 1
const int& ref = num; //ref的值不可修改
1
2
3void swap(int& a, int& b)//引用作参数,可修改实参
{
}