Content
15 Lessons • 0 Quizzes • 0 Challenges
简介
- 1
欢迎来到指针与内存深入讲解
- 2
内存
- 3
指针
- 4
常见错误
- 5
自我测验:内存与指针
栈和局部内存
- 1
局部作用域与全局作用域
- 2
栈的定义
- 3
局部变量的栈
- 4
函数调用的栈
- 5
指向栈上变量的指针
- 6
常见错误
- 7
自我测验:栈的使用
复杂指针声明
- 1
基本规则
- 2
阅读复杂的指针声明
- 3
关于复杂声明的更多细节
- 4
自我测验:阅读复杂的指针声明
向函数传递参数
- 1
按值传递
- 2
值传递中的问题
- 3
通过指针实现引用传递
- 4
编程挑战:交换函数
- 5
改变作为参数传递的指针的值
- 6
自我测验:参数传递
堆与动态内存
- 1
堆内存简介
- 2
动态内存分配函数
- 3
静态分配与动态分配
- 4
在堆上分配一维数组
- 5
动态数组的重新分配
- 6
Valgrind 简介
- 7
挑战:C++ 中的 std::string
- 8
在堆上分配二维数组
- 9
将矩阵分配为连续块
- 10
函数间共享内存与所有权
- 11
常见错误
- 12
自我测验:堆与动态内存分配
指针算术基础
- 1
数据类型大小
- 2
加法
- 3
减法
- 4
比较指针
- 5
无效操作
- 6
指针算术自测题
结构体
- 1
结构体定义
- 2
结构体数组
- 3
动态分配结构体及其成员
- 4
结构体成员的填充
- 5
深拷贝与浅拷贝
- 6
自我测验:结构体
- 7
编程挑战:建模复杂对象与关系(1)
- 8
编程挑战:建模复杂对象与关系(2)
指针与数组
- 1
数组基础
- 2
指针与数组
- 3
指针算术与数组
- 4
数组衰减
- 5
向函数传递数组
- 6
练习:有序数组中的目标和
- 7
挑战:两个有序数组中的最接近目标和
- 8
数组自测题
使用链表练习所有内容
- 1
单链表定义
- 2
练习:在链表中插入元素
- 3
挑战:在链表中插入元素
- 4
从内存角度比较链表与数组
- 5
局部引用技术
- 6
练习:有序合并
- 7
挑战:在指定位置插入元素和合并链表
指针与字符串
- 1
使用字符数组表示内存
- 2
指向常量字符串的指针
- 3
指针算术运算与字符串
- 4
返回指向字符串的指针
- 5
练习:反转字符串
- 6
挑战:查找第一次出现的位置
- 7
字符串自测练习
使用空指针实现泛型
- 1
指针定义
- 2
使用 void* 的函数示例
- 3
通用链表
- 4
通用性辅助函数
- 5
练习:获取指定位置的元素
- 6
挑战:从泛型链表中删除元素
- 7
自我测验:关于 void 指针
指针与函数
- 1
编写函数指针
- 2
函数指针与普通指针
- 3
将函数作为参数传递
- 4
函数指针数组
- 5
练习:构建一个命令行工具
- 6
函数指针自测练习
高级内存操作
- 1
重新理解内存
- 2
挑战:实现 memcmp 函数
- 3
字节序
- 4
挑战:实现 reverseBytes 函数
- 5
检查字节序
- 6
自我测验:高级内存操作
项目准备:二叉搜索树
- 1
二叉搜索树(BST)
- 2
实现技巧与窍门
- 3
编程练习环境
- 4
二叉搜索树操作:伪代码(第一部分)
- 5
BST 操作:练习场(第一部分)
- 6
BST 操作:伪代码(第二部分)
- 7
BST 操作:练习场(第二部分)
- 8
BST 操作:伪代码(第三部分)
- 9
BST 操作:练习场(第三部分)
- 10
BST 操作:伪代码(第 4 部分)
- 11
BST 操作:练习场(第四部分)
结论
- 1
结论
- 2
附录1 - 有用的链接和工具
- 3
附录 2 - 通用二叉搜索树实现解决方案
- 4
附录3 - 温度样本项目解决方案
- 5
附录4 - 词典项目解决方案
- 6
附录5 - 员工记录项目解决方案
Certificate of Completion
Showcase your accomplishment by sharing your certificate of completion.
Course Author:Anonymous User