C++基础回顾:new与malloc区别与运算符详解
175 浏览量
更新于2024-08-30
收藏 118KB PDF 举报
C++基础知识总结涵盖了两个关键主题:内存管理和运算符使用。
一、内存管理
1. **new和malloc的区别**:
- `new` 和 `delete` 是C++中的内存分配和释放机制,它们实际上是调用了C语言的 `malloc` 和 `free` 函数,但提供了自动调用构造函数和析构函数的功能。例如,当你用`new`为数组分配内存时,需使用`delete[]`进行释放,以确保正确地调用析构函数。
- `malloc` 和 `free` 的配合中,`malloc` 返回的是`void*`类型的指针,需要强制转换(通常为`static_cast`或`reinterpret_cast`)后才能使用。
- `new` 动态分配的内存存放在堆上,而`malloc`的内存则在自由存储区(也称栈外内存)。
2. **内存管理细节**:
- 需要注意内存管理的正确性和效率,尤其是在处理动态内存时,避免内存泄漏和过度分配。
二、C++运算符
1. **取模运算符 `%`**:用于计算两个整数相除的余数,是算术运算符之一。
2. **逻辑运算符**:包括`!`(逻辑非)、`&&`(逻辑与)和`||`(逻辑或),用于条件判断。
3. **三元操作符 `?:`**:条件运算符,如果条件为真,则返回`a`,否则返回`b`,简化了复杂的if-else结构。
4. **位运算符**:`&`(按位与)、`|`(按位或)、`~`(按位非)用于处理二进制数据的位级操作。
5. **位移运算符**:`<<`(左移)和`>>`(右移)用于移动位,改变数值的二进制表示。
三、引用(References)
1. **&运算符的作用**:
- 作为取地址运算符,`int*x=&y` 表示获取变量`y`的地址。
- 作为引用,`int&y=x` 创建了一个对`x`的引用,不允许重新绑定(即`k = j`不会改变`k`指向`i`,而是修改`k`的值)。
2. **引用的规则**:
- 引用必须在创建时初始化,并且一旦初始化,不能再改变引用的目标。
- 引用常用于函数参数传递,以避免复制大量数据,提高效率。在重载操作符时,引用能提供更自然的行为,比如`[]`操作符通常返回引用而不是指针。
掌握这些C++基础知识对编程实践至关重要,理解内存管理有助于避免内存问题,而熟练运用各种运算符和引用可以提高代码的简洁性和效率。通过系统复习,无论是提升技能还是巩固基础,都能帮助你在IT行业中更好地应对挑战。
4418 浏览量
422 浏览量
232 浏览量
2025-01-03 上传
2024-12-30 上传
201 浏览量
158 浏览量
2024-11-07 上传
273 浏览量
weixin_38639642
- 粉丝: 9
- 资源: 894
最新资源
- VS2012 MFC小程序 简易网络聊天室
- 保险公司讲师邀请函
- elFinder(Web文件管理器) 2.1.57
- AlgorithmForFun:DFS,BFS等算法的实现与演示。演示环境基于Opencv构建
- FMI_论坛
- noq
- meteor-cordova-ios-gap-ready-iframe-issue-example:[WIP] 流星 1.1.0.2
- 保险公司职前教育学员手册
- intervaltree:用JS实现的间隔树
- 谷歌浏览器稳定版 64位_65.0.3325.1811.zip
- FMSCKF:功能性多状态约束卡尔曼滤波器
- phonegap-workshop-master
- hjhg0t96r567trfd
- CPMS-FrontEnd:慢性病人管理系统前端
- 天池新人实战赛之[离线赛]-数据集
- 保险公司机构培训部KPI评估