个人学习C++笔记2

242 阅读1分钟

C++核心编程

1. 内存分区模型

image.png

image.png

程序运行前

在程序编译后,生成了exe可执行程序,未执行该程序前分为两个区域

代码区:

  • 存放CPU执行的机器指令
  • 代码区时共享的,共享的目的是对于频繁被执行的程序,只需要在内存中有一份代码即可
  • 代码区时只读的,使其只读的原因是防止程序意外地修改了它的指令

全局区

  • 全局变量和静态变量存放在此
  • 全局区还包含了常量区,字符串常量和其他常量也存放在此
  • 该区域的数据在程序结束后由操作系统释放

image.png image.png 总结:

  • C++中在程序运行前分为全局区和代码区
  • 代码区特点是共享和只读
  • 全局区中存放全局变量、静态变量、常量
  • 常量区中存放const修饰的全局变量和字符串常量

程序运行后

image.png
栈区存放的数据:局部变量,形参。

image.png
释放堆区数组要加中括号delete[]数组名

image.png

NEW操作符

image.png C++中利用new操作符在堆区开辟数据
堆区开辟的数据,由程序员开辟,手动释放,释放利用操作符delete
语法:new数据类型
利用new创建的数据,会返回该数据对应的类型的指针(及返回的是地址)
如果用的是小括号()指创建一个变量,如果是中括号[]指创建了一个数组。