指针与内存管理:C语言最硬的坎

很多初学者卡在指针这里,知道语法但一到实战就忘。这门课涵盖从基本数据类型到指针高级应用的十八章内容,包括格式化输入输出、表达式、语句、数组、函数、字符串、结构体枚举、文件操作,再到常用数据结构、排序二分查找,最终落脚于词法分析器项目,每章配有知识点总结xmind可对照自查。

适合有基础编程概念、准备补强C语言底层能力或转向Linux开发的人。零基础者务必从第一章概述开始,先走完第四章表达式、第五章语句、第六章数组、第七章函数,再进入指针部分;第二章铺垫输入输出,第十二章才深入高级应用,中间不要跳。学完能独立写出含指针操作的模块化程序,理解栈堆区别,完成简单数据处理和文件读写,并掌握常见算法的实现细节。

Linux与项目实战:补齐工程能力

资料包另一条线是Linux十四讲,配有视频笔记和画图素材,补足纯C训练的短板。建议在学习C语言后半段时同步过Linux前五讲,建立命令行环境和文件操作直觉;进入第六讲以后,配合第十三到十五章的数据结构与算法练习,形成闭环。

词法分析器项目是综合检验点,前面学的字符串处理、指针操作、结构体设计、文件IO和排序查找都要用上。练习时别只看笔记,先用课件自测每章关键点,再动手把项目拆开实现,逐个模块测试通过才算掌握。看完这套资料,应该能回答指针和数组什么关系、结构体如何动态分配、文件读取怎么防越界、二分查找边界条件怎么写等具体问题,具备独立完成小型工具开发的实力。

课程目录

1.C
第八章 指针.pdf 200.57kb
第二章 格式化输入输出.pdf 272.23kb
第九章 指针与数组.pdf 270.75kb
第六章 数组.pdf 272.32kb
第七章 函数.pdf 481.97kb
第三章 基本数据类型.pdf 491.75kb
第十二章 指针的高级应用.pdf 417.12kb
第十六章 词法分析器项目.pdf 731.64kb
第十三章 常用数据结构.pdf 2.07M
第十四章 排序和二分查找.pdf 2.45M
第十五章 文件.pdf 456.65kb
第十一章 结构体和枚举.pdf 258.94kb
第十章 字符串.pdf 417.64kb
第四章 表达式.pdf 370.52kb
第五章 语句.pdf 525.02kb
第一章 C语言概述.pdf 455.83kb
课件
知识点总结
C语言.xmind 141.11kb
数据结构和算法.xmind 94.94kb
2.Linux
Linux01
笔记
视频
Linux02
Linux03
Linux04
Linux05
Linux06
Linux07
Linux08
Linux09
Linux10
Linux11
Linux12
Linux13
Linux14
画图
index.html 0.12kb
Linux14_01_概述_网络的历史_20241004_092859.mp4 646.53M
Linux14_02_网络硬件_模型_协议作用_分层的结构_20241004_105609.mp4 357.78M
Linux14_03_一个网页的产生的问题和HTTP的关系_20241004_143335.mp4 474.93M
Linux14_04_http的请求报文_请求行_请求方式_20241004_155544.mp4 565.43M
Linux14_05_http的请求头_20241004_171411.mp4 300.30M
Linux14.ppt 2.03M
Linux15
Linux15_01_回顾协议_http_https_20241005_093133.mp4 409.69M
Linux15_02_https_tcp的特点_20241005_105603.mp4 299.78M
Linux15_03_tcp头部_20241005_143146.mp4 403.64M
Linux15_04_tcp重传_窗口机制_udp协议_20241005_154746.mp4 386.89M
Linux15_05_udp协议_ip地址_ip首部_20241005_170620.mp4 328.89M
Linux15.ppt 2.83M
Linux16
Linux16_01_回顾_路由器_信号举例_20241006_093201.mp4 390.24M
Linux16_02_路由器_net转换_20241006_105230.mp4 322.70M
Linux16_03_以太网帧_socket概述_20241006_143032.mp4 383.10M
Linux16_04_大端小端_点分十进制转化_20241006_154731.mp4 471.27M
Linux16_05_基于tcp协议的socket通信流程_20241006_171034.mp4 311.05M
Linux16.ppt 2.04M
Linux17
Linux17_01_基于tcp通信的socket_20241008_093036.mp4 452.54M
Linux17_02_基于tcp通信的socket代码实现_20241008_105457.mp4 480.62M
Linux17_03_基于tcp的socket通信_引入select_io多路复用_20241008_143057.mp4 475.56M
Linux17_04_端口占用_断开重连的简单实现_20241008_154816.mp4 420.48M
Linux17_05_群聊_超时踢出的一些想法_20241008_170701.mp4 343.65M
Linux17.ppt 1.86M
Linux18
Linux18_01_回顾_作业_20241009_093034.mp4 372.27M
Linux18_02_作业_tcp没有边界_自定义协议_20241009_105256.mp4 511.64M
Linux18_03_hash算法_基于udp通信的socket逻辑_20241009_142950.mp4 462.21M
Linux18_04_select和epoll的原理_20241009_155607.mp4 379.44M
Linux18_05_epoll的代码实现_20241009_170607.mp4 368.07M
Linux18.ppt 1.54M
Linux19
Linux19_01_回顾_udp_epoll_作业_20241010_092958.mp4 485.56M
Linux19_02_epoll修改之前的群聊_epoll的触发模式_20241010_105831.mp4 481.54M
Linux19_03_非阻塞的recv_半包问题的一些想法_20241010_141819.mp4 219.79M
Linux19.ppt 515.00kb
Linux20
Linux20_01_回顾_作业_20241011_093045.mp4 581.62M
Linux20_02_多线程_多进程设计考虑_20241011_105534.mp4 345.52M
Linux20_03_进程池的设计_本地socket_20241011_143000.mp4 406.12M
Linux20_04_本地socket通信_实现进程池_20241011_155111.mp4 438.01M
Linux20_04_进程池的实现_20241011_170617.mp4 369.27M
Linux20.ppt 1.25M
LInux21
Linux21_01_粘包和半包问题_小火车头部_msg_waitall_20241012_093019.mp4 539.76M
Linux21_02_半包问题_sigpipe信号_进度条获取文件大小_拷贝问题_20241012_105637.mp4 508.50M
Linux21_03_拷贝问题_退出进程的思考_20241012_143036.mp4 503.01M
Linux21_04_进程池的退出_线程池的设计_实现_20241012_155127.mp4 500.77M
Linux21_05_线程池的实现_20241012_171222.mp4 243.54M
Linux21.ppt 1.19M
Linux22
Linux22_01_线程池的退出问题_20241014_093545.mp4 453.90M
Linux22_02_线程池的退出_git的历史和作用和安装_20241014_105900.mp4 386.70M
Linux22_03_git基本命令_20241014_143055.mp4 436.77M
Linux22_04_分支问题_20241014_154706.mp4 405.02M
Linux22_05_分支问题_冲突_和两个人编写代码交互_20241014_170640.mp4 406.44M
Linux22_06_本地分支推送远程_远程分支拉取到本地_20241014_200215.mp4 66.06M
Linux22.ppt 1.62M
Linux23
Linux23_01_git的分支的使用_20241015_093142.mp4 459.68M
Linux23_02_git回退_忽略文件_本地项目上传_数据库介绍_20241015_104901.mp4 525.07M
Linux23_03_mysql的安装的一些问题_20241015_143030.mp4 427.51M
Linux23_04_库操作_数据类型_20241015_155253.mp4 392.35M
Linux23_05_数据类型_查看表_创建表_20241015_171025.mp4 282.23M
Linux23.ppt 2.37M
mysql8的安装和连接.mp4 53.43M
新建 XLSX 工作表.xlsx 11.26kb
Linux24
Linux24_01_表的创建_主键_自增_20241016_093154.mp4 448.34M
Linux24_02_主键_自增_表操作修改_删除_数据的增删改查_where条件_20241016_105628.mp4 409.84M
Linux24.ppt 1.39M
Linux25
Linux25_01_sql关键字_20241017_093100.mp4 385.41M
Linux25_02_排序分组聚合_sql执行顺序_20241017_105044.mp4 430.43M
Linux25_03_数据完整性_范式_表关系_20241017_143038.mp4 426.07M
Linux25_04_交叉连接_自然连接_内连接_外连接_自连接_20241017_154835.mp4 428.32M
Linux25_05_子查询_联合查询_数据备份_20241017_170547.mp4 358.59M
Linux25.ppt 2.62M
外连接和内连接.xls 28.00kb
Linux26
Linux25_03_事务_隔离级别_20241018_143055.mp4 427.27M
Linux25_04_隔离级别_存储引擎_20241018_154702.mp4 435.09M
Linux25_05_存储引擎_B+树_索引结构_20241018_170340.mp4 350.48M
Linux26_01_回顾_mysql的capi_20241018_093119.mp4 380.18M
Linux26_02_capi使用和注意_20241018_104958.mp4 519.38M
Linux26.ppt 2.03M
Linux27
Linux27_01_项目介绍_20241019_093049.mp4 489.60M
Linux27_02_项目介绍_20241019_105740.mp4 438.33M
Linux27_03_第二期_20241019_142906.mp4 162.19M
Linux28
Linux28_01_第三期_20241021_143409.mp4 446.04M
Linux28_02_第三期_sql问题_20241021_154659.mp4 226.66M
sql注入.png 54.13kb
第三期_表模拟目录森林.png 198.75kb
第三期_断点标记问题.png 39.50kb
第三期_用户密码.png 90.41kb
Linux30
l8w8jwt-2.1.7-linux-x86_64.tar.gz 246.97kb
Linux30_第四期_20241023_194013.mp4 141.00M
token加密.jpg 182.00kb
第三期.png 87.61kb
第四期.png 354.02kb
Linux31
长短命令分离.jpg 180.38kb
第五期_索引问题20241025_143403.mp4 660.28M
第五期的一些想法.png 1.44M
索引2.png 602.24kb
索引3.png 646.92kb
索引_匹配原则.png 92.20kb
索引.png 337.88kb
讲义
Linux_01_常用命令.pdf 659.67kb
Linux_02_vim.pdf 430.04kb
Linux_03_编译工具链.pdf 1.66M
Linux_04_目录.pdf 365.13kb
Linux_05_文件.pdf 767.07kb
Linux_06_进程.pdf 871.91kb
Linux_07_进程间通信.pdf 813.82kb
Linux_08_线程.pdf 821.23kb
Linux_0_Linux简介.pdf 518.81kb
Linux_10_网络编程.pdf 688.84kb
Linux_11_http.pdf 743.79kb
Linux_12_进程池和线程池.pdf 838.40kb
Linux_9_网络协议.pdf 594.46kb
Ubuntu的安装与配置 .pdf 1.80M
vim的安装与配置.pdf 187.30kb
func.h 0.59kb
Makefile 0.20kb
vimrc 13.78kb
3.C++
C++(60期)
CppBaseDay01
CppBaseDay02
CppBaseDay03
CppBaseDay04
CppBaseDay05
CppBaseDay06
CppBaseDay07
CppBaseDay08
CppBaseDay09
CppBaseDay10
CppBaseDay11
CppBaseDay12
CppBaseDay13
CppBaseDay14
CppBaseDay15
CppBaseDay16
CppBaseDay17
CppBaseDay18
day01
day01_1.C++发展概述.mp4 265.25M
day01_2.命名空间的基本使用.mp4 270.55M
day01_3.命名空间的基本使用_const常量.mp4 290.93M
day01_4.三组对比_new_delete表达式.mp4 284.30M
day01_5.new数组空间_引用的基本认识.mp4 241.47M
day02
day02_1.复习_引用的基本用法.mp4 315.14M
day02_2.强制转换_函数重载_默认参数.mp4 314.11M
day02_3.inline函数_异常处理.mp4 323.20M
day02_4.内存布局_C风格字符串_面向对象介绍.mp4 273.94M
day02_5.类的定义.mp4 253.74M
day03
day03_1.复习_构造函数.mp4 365.85M
day03_2.构造函数_对象空间大小.mp4 364.17M
day04
day04_1.析构函数.mp4 283.68M
day04_2.拷贝构造函数_认识左值右值.mp4 309.21M
day04_3.赋值运算符函数.mp4 440.68M
day04_4.特殊的数据成员.mp4 301.79M
day04_5.特殊的数据成员_特殊的成员函数.mp4 281.65M
day05
day05_1.作业讲解.mp4 355.29M
day05_2.对象的组织_new_delete的工作步骤.mp4 530.80M
day05_3.单例模式的探究.mp4 432.11M
day05_4.单例模式的探究_C++字符串.mp4 484.48M
day05_5.string的常用操作_C++动态数组.mp4 435.80M
day07
day07_1.vector的基本使用.mp4 508.84M
day07_2.作业讲解.mp4 396.00M
day07_3.作业讲解_C++流的介绍.mp4 444.54M
day07_4.标准输入流的使用.mp4 378.35M
day07_5.流的缓冲机制_文件输入流的使用.mp4 383.36M
day07_6.插件设置.mp4 11.17M
day08
CppBase第一阶段.xmind 259.76kb
day08_1.作业讲解_文件输入流.mp4 318.47M
day08_2.文件输出流_字符串输入输出.mp4 381.82M
day08_3.CppBase第一阶段复盘_日志系统的介绍.mp4 223.82M
day08_4.log4cpp示例代码解读.mp4 486.73M
day08_5.log4cpp的使用.mp4 479.53M
The_Holy_Bible.txt 4.15M
day09
day09_1.作业讲解和说明.mp4 297.35M
day09_2.友元_运算符重载介绍.mp4 342.97M
day09_3.运算符重载简单案例.mp4 347.60M
day10
day10_1.log4cpp单例作业讲解.ev4 334.88M
day10_1.log4cpp单例作业讲解.mp4 334.88M
day10_2.词频统计作业讲解_下标运算符重载.ev4 403.54M
day10_2.词频统计作业讲解_下标运算符重载.mp4 403.53M
day10_3.输入输出流运算符重载_箭头运算符重载.ev4 441.30M
day10_3.输入输出流运算符重载_箭头运算符重载.mp4 441.29M
day10_4.箭头运算符_解引用运算符_函数调用运算符重载.ev4 476.46M
day10_4.箭头运算符_解引用运算符_函数调用运算符重载.mp4 476.45M
day10_5.函数对象_函数指针_成员函数指针.ev4 418.07M
day10_5.函数对象_函数指针_成员函数指针.mp4 418.06M
day11
day11_1.复习_类型转换函数.mp4 410.42M
day11_2.类型转换函数_嵌套类.mp4 445.16M
day11_3.pimpl模式_单例对象自动释放.mp4 351.35M
day11_4.单例对象自动释放_写时复制字符串原理分析.mp4 367.69M
day11_5.写时复制字符串源码实现.mp4 240.50M
day12
china_daily.txt 6.15kb
day12_1.作业讲解_CowString源码实现.mp4 356.43M
day12_2.CowString的源码实现.mp4 459.97M
day12_3.SSO设计思想_set的基本使用.mp4 475.05M
day12_4.补档_map的基本操作.mp4 419.16M
day12_5.map的下标操作_第二周内容盘点.mp4 127.32M
day13
RSS解析作业
day13_1.词频统计_单词查询作业讲解.mp4 415.29M
day13_2.继承的介绍_访问权限的探究.mp4 250.60M
day13_3.单继承结构下对象的创建销毁_成员的隐藏.mp4 337.67M
day13_4.多继承结构的二义性问题.mp4 289.66M
day13_5.基类与派生类转换_派生类对象的复制控制.mp4 349.48M
day13_6.RSS解析作业.mp4 173.06M
day14
day14_1.作业讲解_多态的介绍.ev4 310.18M
day14_1.作业讲解_多态的介绍.mp4 310.17M
day14_2.虚函数机制.ev4 307.50M
day14_2.虚函数机制.mp4 307.49M
day14_3.虚函数的各种调用情况_纯虚函数.ev4 346.40M
day14_3.虚函数的各种调用情况_纯虚函数.mp4 346.40M
day14_4.抽象类_虚析构函数.ev4 375.78M
day14_4.抽象类_虚析构函数.mp4 375.77M
day14_5.验证虚表_带虚函数的多继承.ev4 217.94M
day14_5.验证虚表_带虚函数的多继承.mp4 217.93M
day15
TextQuery
day15_1.作业讲解_复习.mp4 336.38M
day15_2.带虚函数的多继承内存布局.mp4 394.71M
day15_3.虚拟继承与虚函数的内存布局_RSS作业讲解.mp4 438.04M
day16
day16_1.模板的介绍_函数模板的简单使用.mp4 326.71M
day16_2.模板特化_模板参数类型.mp4 286.87M
day16_3.成员函数模板_类模板_可变参数模板.mp4 300.40M
day16_4.移动构造_移动赋值函数.mp4 323.05M
day16_5.移动语义.mp4 257.99M
day17
CppBase总结.xmind 228.95kb
day17_1.作业讲解_资源管理思想.mp4 356.45M
day17_2.RAII_auto_ptr_unique_ptr基本使用.mp4 419.86M
day17_3.shared_ptr_weak_ptr基本使用_循环引用问题.mp4 419.15M
day17_4.删除器_智能指针的误用.mp4 324.14M
day17_5.智能指针的误用_复习盘点.mp4 305.12M
day18
序列式容器.assets
day18_1.1.作业讲解(片段).mp4 20.46M
day18_1.2.作业讲解_STL六大组件介绍_序列式容器初始化与遍历.mp4 440.59M
day18_2.vector源码阅读_deque源码阅读.mp4 503.50M
day18_3.deque原理_insert操作_vector迭代器失效.mp4 424.44M
序列式容器.md 5.58kb
0.C++发展概述.assets
1.C++与C.assets
10.移动语义与资源管理.assets
2.类与对象.assets
3.C++输入输出流.assets
4.日志系统.assets
5.运算符重载.assets
6.继承.assets
7.关联式容器.assets
8.多态.assets
9.模板.assets
0.C++发展概述.md 10.35kb
1.C++与C.md 59.03kb
10.移动语义与资源管理.md 42.07kb
2.类与对象.md 75.82kb
3.C++输入输出流.md 26.80kb
4.日志系统.md 16.58kb
5.运算符重载.md 65.99kb
6.继承.md 31.96kb
7.关联式容器.md 8.41kb
8.多态.md 38.99kb
9.模板.md 28.76kb
C++Primer第五版.pdf 197.55M
C++程序设计语言.第1~3部分.原书第4版.pdf 157.95M
cppreference-zh-20211231.chm 7.88M
Google C++ 编程规范.pdf 1.95M
快捷键示意.png 157.28kb
快捷键自动化脚本.exe 706.50kb
4.STL
CppBaseDay19
1笔记
2视频
3离线cppreference
4slickedit软件
5自我介绍
CppBaseDay20
3编程题答案
CppBaseDay21
3作业答案
CppBaseDay22
3gdb调试手册
4STL源码剖析
CppBaseDay23
CppBaseDay24
3参考源码
STL源码
sgi_stl
5._CppBoost
1_课件
1.1面向对象的设计.pdf 9.69M
1.2C++11线程库.pdf 967.62kb
2.1计算机网络.pdf 3.06M
2.2服务器架构模型.pdf 2.84M
2_软件
StartUML5.0.7z 181.98M
CppBoostDay01
1_笔记
2_视频
3_推荐书籍
CppBoostDay02
CppBoostDay03
CppBoostDay04
CppBoostDay05
3_所有参考代码
ReactorV5_new.png 393.58kb
6_Qt
61Qtday01_01_自我介绍.mp4 134.39M
61Qtday01_02_Qt的第一个项目.mp4 139.00M
62Qtday01_01_自我介绍.mp4 39.33M
62Qtday01_02_初始Qt.mp4 62.56M
62Qtday01_03_设计模式下信号槽的使用.mp4 96.94M
62Qtday01.pdf 1.40M
62Qtday01.zip 9.81kb
62Qtday02_01_纯代码方式信号槽的使用.mp4 147.61M
62Qtday02_02_Qt中的数据结构.mp4 161.96M
62Qtday02_03_Qt中的容器1.mp4 203.11M
62Qtday02_04_Qt中的容器2.mp4 168.66M
62Qtday02_05_元对象和反射.mp4 124.24M
62Qtday02.pdf 1.91M
62Qtday02.zip 91.65kb
62Qtday03_01_信号槽1.mp4 158.88M
62Qtday03_02_信号槽2.mp4 158.24M
62Qtday03.pdf 1.03M
62Qtday03.zip 25.31kb
62Qtday04_01_信号槽3.mp4 153.49M
62Qtday04_02_信号槽4.mp4 173.56M
62Qtday04_03_对象树.mp4 153.35M
62Qtday04_04_事件1.mp4 151.06M
62Qtday04_05_事件2.mp4 128.00M
62Qtday04.pdf 2.67M
62Qtday04.zip 122.31kb
62Qtday05_01_QWidget1.mp4 149.28M
62Qtday05_02_QWidget2.mp4 177.91M
… 共 430 条