Logo
☆☆☆☆☆
0.0
Beginner
20h

深入理解C语言中的内存与指针

本课程旨在深入理解C语言中的指针及底层内存操作。课程采用循序渐进的方式,系统讲解C语言中指针与内存的基础知识,涵盖从基础到高级的各类概念。 课程分为多个部分。首先介绍内存与指针的基本概念,以及常见的相关错误。随后,全面讲解C语言指针的各个方面,包括内存管理、数组、字符串、函数、复杂声明、动态内存分配、结构体和链表等。课程将从零开始,逐步引导你掌握指针与内存的核心原理。你将首先理解问题的本质,以及现有概念为何无法有效解决这些问题。通过分解式的学习方法,本课程将帮助你找到掌握核心概念的最佳途径。 完成本课程后,你将能够基于对C语言中指针与内存工作原理的深入理解,编写出更高效、更简洁、更有效的代码。

15 Lessons
Included in Subscription Plan
Personalized Learning
Powered by AI
深入理解C语言中的内存与指针
本课程旨在深入理解C语言中的指针及底层内存操作。课程采用循序渐进的方式,系统讲解C语言中指针与内存的基础知识,涵盖从基础到高级的各类概念。 课程分为多个部分。首先介绍内存与指针的基本概念,以及常见的相关错误。随后,全面讲解C语言指针的各个方面,包括内存管理、数组、字符串、函数、复杂声明、动态内存分...

WHAT YOU'LL LEARN

对C语言的熟练掌握

Content

15 Lessons • 0 Quizzes • 0 Challenges

简介
  1. 1

    欢迎来到指针与内存深入讲解

  2. 2

    内存

  3. 3

    指针

  4. 4

    常见错误

  5. 5

    自我测验:内存与指针

栈和局部内存
  1. 1

    局部作用域与全局作用域

  2. 2

    栈的定义

  3. 3

    局部变量的栈

  4. 4

    函数调用的栈

  5. 5

    指向栈上变量的指针

  6. 6

    常见错误

  7. 7

    自我测验:栈的使用

复杂指针声明
  1. 1

    基本规则

  2. 2

    阅读复杂的指针声明

  3. 3

    关于复杂声明的更多细节

  4. 4

    自我测验:阅读复杂的指针声明

向函数传递参数
  1. 1

    按值传递

  2. 2

    值传递中的问题

  3. 3

    通过指针实现引用传递

  4. 4

    编程挑战:交换函数

  5. 5

    改变作为参数传递的指针的值

  6. 6

    自我测验:参数传递

堆与动态内存
  1. 1

    堆内存简介

  2. 2

    动态内存分配函数

  3. 3

    静态分配与动态分配

  4. 4

    在堆上分配一维数组

  5. 5

    动态数组的重新分配

  6. 6

    Valgrind 简介

  7. 7

    挑战:C++ 中的 std::string

  8. 8

    在堆上分配二维数组

  9. 9

    将矩阵分配为连续块

  10. 10

    函数间共享内存与所有权

  11. 11

    常见错误

  12. 12

    自我测验:堆与动态内存分配

指针算术基础
  1. 1

    数据类型大小

  2. 2

    加法

  3. 3

    减法

  4. 4

    比较指针

  5. 5

    无效操作

  6. 6

    指针算术自测题

结构体
  1. 1

    结构体定义

  2. 2

    结构体数组

  3. 3

    动态分配结构体及其成员

  4. 4

    结构体成员的填充

  5. 5

    深拷贝与浅拷贝

  6. 6

    自我测验:结构体

  7. 7

    编程挑战:建模复杂对象与关系(1)

  8. 8

    编程挑战:建模复杂对象与关系(2)

指针与数组
  1. 1

    数组基础

  2. 2

    指针与数组

  3. 3

    指针算术与数组

  4. 4

    数组衰减

  5. 5

    向函数传递数组

  6. 6

    练习:有序数组中的目标和

  7. 7

    挑战:两个有序数组中的最接近目标和

  8. 8

    数组自测题

使用链表练习所有内容
  1. 1

    单链表定义

  2. 2

    练习:在链表中插入元素

  3. 3

    挑战:在链表中插入元素

  4. 4

    从内存角度比较链表与数组

  5. 5

    局部引用技术

  6. 6

    练习:有序合并

  7. 7

    挑战:在指定位置插入元素和合并链表

指针与字符串
  1. 1

    使用字符数组表示内存

  2. 2

    指向常量字符串的指针

  3. 3

    指针算术运算与字符串

  4. 4

    返回指向字符串的指针

  5. 5

    练习:反转字符串

  6. 6

    挑战:查找第一次出现的位置

  7. 7

    字符串自测练习

使用空指针实现泛型
  1. 1

    指针定义

  2. 2

    使用 void* 的函数示例

  3. 3

    通用链表

  4. 4

    通用性辅助函数

  5. 5

    练习:获取指定位置的元素

  6. 6

    挑战:从泛型链表中删除元素

  7. 7

    自我测验:关于 void 指针

指针与函数
  1. 1

    编写函数指针

  2. 2

    函数指针与普通指针

  3. 3

    将函数作为参数传递

  4. 4

    函数指针数组

  5. 5

    练习:构建一个命令行工具

  6. 6

    函数指针自测练习

高级内存操作
  1. 1

    重新理解内存

  2. 2

    挑战:实现 memcmp 函数

  3. 3

    字节序

  4. 4

    挑战:实现 reverseBytes 函数

  5. 5

    检查字节序

  6. 6

    自我测验:高级内存操作

项目准备:二叉搜索树
  1. 1

    二叉搜索树(BST)

  2. 2

    实现技巧与窍门

  3. 3

    编程练习环境

  4. 4

    二叉搜索树操作:伪代码(第一部分)

  5. 5

    BST 操作:练习场(第一部分)

  6. 6

    BST 操作:伪代码(第二部分)

  7. 7

    BST 操作:练习场(第二部分)

  8. 8

    BST 操作:伪代码(第三部分)

  9. 9

    BST 操作:练习场(第三部分)

  10. 10

    BST 操作:伪代码(第 4 部分)

  11. 11

    BST 操作:练习场(第四部分)

结论
  1. 1

    结论

  2. 2

    附录1 - 有用的链接和工具

  3. 3

    附录 2 - 通用二叉搜索树实现解决方案

  4. 4

    附录3 - 温度样本项目解决方案

  5. 5

    附录4 - 词典项目解决方案

  6. 6

    附录5 - 员工记录项目解决方案

Certificate of Completion

Showcase your accomplishment by sharing your certificate of completion.

Course Author:Anonymous User

Reviews

Read reviews from students who have taken this course and share your own experience.

Reviews & Comments (0)