https://www.bilibili.com/video/BV1et411b73Z/?spm_id_from=333.1245.0.0
C++语言学习笔记,根据课程内容写了一些代码,帮助自己记忆和存档。对代码有建议和疑问,欢迎留言交流,欢迎讨论学习、共同进步。
1 内存分区模型
1. 代码区
存放二进制代码,由操作系统管理。
特点:共享、只读
2. 全局区
存放全局变量、静态变量、常量(字符串常量、const修饰的全局变量(全局常量))
在程序结束后由操作系统释放。
程序运行前分为全局区和代码区。
3. 栈区
存放函数参数值、局部变量(const修饰的局部变量(局部常量))等,由编译器分配释放。
不要返回局部变量的地址。函数执行完,栈区开辟的内存由编译器自动释放。
4. 堆区
由程序员分配释放,程序结束时操作系统回收。
利用new在堆区开辟内存,用delete手动释放。
new返回该数据类型的指针。
#include <iostream>
using namespace std;
int main()
{
// new返回该数据类型的指针
int* p = new int(10);
cout << *p << endl;
delete p;
//数组
int* arr = new int[10]; // 10表示数组元素个数
for (int i = 0; i < 10; i++)
{
arr[i] = i + 10;
}
for (int j = 0; j < 10; j++)
{
cout << arr[j] << endl;
}
delete[] arr; // 释放堆区数组
system("pause");
return 0;
}