C++学习记录-4、5

C++核心编程:面向对象进行编程

1内存分区模型

内存四区:代码区、全局区、栈区、堆区

意义:对不同数据进行分区管理,利于代码的生命周期

1.1代码执行前

1.代码区:用于存放二进制数据

共享(对于频繁操作的代码而言,只需要存一份即可)和只读(防止程序意外修改)的

2.全局区:用于存放全局变量、静态变量、常量

全局变量:在main函数之外的变量called全局常量。global➡g➡全局变量   local➡l➡局部变量

静态常量:在数据类型和变量名称前+关键字static ,And 无论是在main函数里面还是外面,只要有static修饰即为静态变量。  eg:static int a=10;

常量:包括字符串常量、const修饰的全局变量(全局变量)、const修饰的局部变量(不在全局区中)

局部变量:在main函数中的除了static修饰的变量之外的变量called局部变量,包括const修饰的局部变量。

变量分布图

1.2代码执行后

1.栈区:由编译器进行分配和释放,存放局部变量形参

tips:不可以返回局部变量的地址,第一次执行返回可以访问其中的值,第二次访问就会出现乱码;其原因是由于栈区开辟的数据由编译器自动释放。

2.堆区:由程序员管理开辟和释放(即在点了窗口上的×之后才让数据死),    

              利用new关键字开辟内存

new关键字的应用:new 数据类型(值);➡由于new关键字开辟的内存是返回某个数据的地址,因此需要用*p来接收   eg:int*p=new int(10);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值