变量被删除

本文探讨了C++中枚举的使用方式及其强作用域规则,解释了为何需要使用域限定符来访问枚举成员。此外,还讨论了C++中的内存管理,包括堆和栈的区别,以及动态内存分配的机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

与正常的枚举,枚举成员可以访问(如红色)直接在周边的范围(如在主)。然而,与枚举类,强作用域规则意味着你必须使用一个域限定符访问枚举器(例如:颜色:红色)。这有助于保持名称的污染和潜在的名称冲突。

强类型规则意味着,C++将寻找一个明确定义的比较函数比较颜色和水果。因为我们还没有定义一个运算符= =(颜色,水果)函数,编译器不知道如何比较A和B的任何有意义的方式,这将导致编译时错误发生。
因为内存分配的精确位置是事先不知道的,已分配的内存可以被访问的间接-这就是为什么新的返回一个指针。你不必担心背后的机制的过程中如何免费存储的位置和分配给用户。然而这是值得了解的连续的内存请求可能不会导致连续的内存地址的分配

int *pValue1 = new int;
int *pValue2 = new int;
// pValue1 and pValue2 may not have sequential addresses

当一个动态分配的变量被删除,记忆是“返回”到堆,然后可以作为未来分配请求的接收。

堆的优点和缺点:

1)分配的内存分配到具体在释放(注意内存泄漏)。

2)动态分配的内存必须通过指针访问。

3)由于堆是一个大的内存池,大的数组,结构,或类应该分配在这里。

堆栈

“调用堆栈”(通常称为“叠”)有一个更有趣的角色。在我们谈论“调用堆栈”,它指的是记忆的一个特定部分,我们对什么是栈的谈话。

考虑在自助餐厅的一堆盘子。因为每片重和他们重叠了,你真的可以做的只有三件事中的一件:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值