内存四区(堆)

在上一次分享中,我和大家分享了栈区,今天栈区来了。

而内存四区中,堆区是干嘛的呢?

堆区,也是用来存放数据的,只不过呢,堆区中的数据的生死存亡是由程序员来控制的。

当然如果你一直不管堆区中数据的死活,编译器也会在程序结束后,清理掉它。

接下来我们先放代码

#include<iostream>
using namespace std;


int*ffff()
{
	int a = 10;//这是一个普通的局部变量,存放在栈区
	int* p = new int(20);//关键字符new,运用new,就可以在堆区开辟空间存放数据,new+类型+(初始值)
	return p;
}

int main()
{
	int* t= ffff();
	cout << *t << endl;
	cout << *t << endl;
	cout << *t << endl;
	cout << *t<< endl;

	return 0;
}

就像上面的代码,使用new这个关键字符在,在堆区中开辟了一个空间来存放数据,然后他就会返回这个空间的地址,所以才需要创建一个指针来接收

     int* p = new int(20);//关键字符new,运用new,就可以在堆区开辟空间存放数据,new+类型+(初始值)

 不同于栈区存放的局部变量只会保留一次后随时可能被清理掉,堆区的数据,如果程序员一直不管它的话,编译器会在程序结束后清理掉它。

所以多次根据地址打印,它的值都不会变。

对于堆区我们可以总结两点:

1.堆区由程序员掌控分配。

2.可以用new这个关键字符,在堆区上开辟空间。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值