零基础C语言视频教程合集(全144讲)

发布于 更新于
184
1、吕鑫2025C#上位机课程大纲_转_标准
点击解锁视频
播放列表当前 1/144

1、吕鑫2025C#上位机课程大纲_转_标准免费

2.
2、人工智能与自动化设备开发简介_转_标准免费

3.
3、VS2022安装与简单程序开发演示_转_标准免费

4.
4、关于C#新型语言生态系统的讨论

5.
5、C语言简单控制台程序开发的演示

6.
6、编译原理与操作系统启动程序的原理

7.
7、通过反复的程序调试理解内存变量的原理

8.
8、变量的定义方法与代码注释的作用

9.
9、变量的不同类型与printf对应的控制符

10.
10、scanf的用法演示以及与printf函数的对比

11.
11、scanf的参数必须取地址否则将出现程序崩溃

12.
12、C语言全部课程大纲

13.
13、单精度和双精度浮点数的区别

14.
14、ifelse单分支语句和双分支语句

15.
15、多分支语句和while循环语句

16.
16、通过双分支语句判断奇偶数

17.
17、通过多分支语句判断正负数

18.
18、通过多分支语句判断年龄区间

19.
19、通过while循环语句判断用户输入的密码

20.
20、讲解dowhile与while语句的区别

21.
21、代码演示dowhile与while语句的区别

22.
22、讲解和演示空循环和死循环的概念

23.
23、for循环语句的特点及与while语句的区别

24.
24、for循环的变体以及if(n)与if(!n)语句

25.
26、while(1)无条件循环与break结果判断

26.
27、break与条件区的循环出口条件的关系

27.
28、continue与break、return的功能对比

28.
29、判断素数的算法设计与程序优化

29.
30、嵌套循环的设计方法与程序优化

30.
31、通过嵌套循环实现大范围的素数判断

31.
32、C语言嵌套循环实现打印乘法表

32.
33、C语言嵌套循环实现打印三角形

33.
34、C语言的变量分类与二进制原理

34.
35、用二进制计算来推算各种变量的存储范围

35.
36、1字节到8字节整型变量的取值范围

36.
37、通过编写循环程序求64位最大值

37.
38、符号位的概念以及变量溢出的原理

38.
39、sizeof关键字与二进制与十进制的转换算法

39.
40、一个需要脑洞大开的程序设计思路

40.
41、使用位运算反复优化程序执行效率

41.
42、十六进制的概念以及与其他进制的转换方式

42.
43、整数和浮点数的常量表达式分类_转_标准

43.
44、编写循环实现32位数的十六进制打印

44.
45、switch-case与elseif的语法对比

45.
46、switch的详细语法规则与注意事项

46.
47、putchar与getchar单字符输入输出函数_转_标准

47.
48、整型常量分类的各个历史版本介绍

48.
49、getchar和gets等函数的用法演示

49.
50、printf函数的高级控制符用法简介

50.
51、制表键与printf高级制表功能介绍

51.
52、scanf的unsafe原因以及scanf_s的用法

52.
53、讲解转义字符之响铃键和退格键的含义

53.
54、回车和换行的区别及所有转义字符全面介绍

54.
55、通过训练题加深对ASCII表的全面理解

55.
56、C语言全部运算符的分类和优先级概括介绍

56.
57、三目判断运算符与sizeof特殊运算符简介

57.
58、对C语言全部运算符的优先级进行分类归纳

58.
59、比较与逻辑结果测试以及简单了解数组的定义

59.
60、两个经典逻辑运算符的实战训练案例

60.
61、数组的定义与几种常量表达式的介绍

61.
62、使用sizeof与_countof求数组元素个数

62.
63、关于数组越界访问内存的严重bug的演示

63.
64、数组算法实战之求最大值和最小值

64.
65、数组算法实战之多种方法实现反序

65.
66、数组算法实战之简单元素查找算法

66.
67、数组算法实战之排列组合搜索相同的对数

67.
68、使用和差算法等方法实现变量交换

68.
69、通过反复测试学习随机数与时间函数

69.
70、多案例演示字符数组与字符串数组的特点

70.
71、通过简单的案例演示字符串族函数的作用

71.
72、strcpy函数调用的重要bug分析

72.
73、strcat函数调用的重要bug分析

73.
74、初步了解函数的概念以定义和调用

74.
75、进一步掌握函数的设计与调试方法

75.
76、通过9次改写完善和优化strcpy函数的原理_转_标准

76.
77、用最简易最高效的方式实现strcat函数原理

77.
78、数组做形参时的经典bug演示与解决方案

78.
79、strcmp字符串比较与冒泡排序的算法原理解析

79.
80、深入解析strcmp的比较条件与算法优化

80.
81、通过反复测试剖析冒泡排序的过程与算法优化

81.
82、字符串反序算法演示与缺陷修正

82.
83、通过内存观测器讲解指针变量的概念与定义

83.
84、演示通过指针变量遥控内存变量改变数值的过程

84.
85、通过三种swap函数演示指针变量做参数对实参的影响

85.
86、演示指针变量做参数对实参中数组变量的影响

86.
87、利用指针变量偏移实现高级内存操作的算法流程与原理

87.
88、通过代码示例演示指针变量的详细使用规则

88.
89、不同种类的指针变量对内存数据操作的长度

89.
90、指针变量相关升级和降级符号之间的等价关系

90.
91、使用指针法代替下标法实现strcpy函数原理

91.
92、简单总结指针变量的用法规则与strchar函数测试

92.
93、单字符查找strchr函数的原理实现与指针减法计算

93.
94、多字符查找strpbrk函数的用法测试与原理实现

94.
95、结构体的概念、定义与成员调用方法简介

95.
96、typedef的语法与struct复杂定义方式介绍

96.
97、结构体内成员赋值与对象间的数据复制

97.
98、通过结构体数组进行简单信息管理项目开发

98.
99、使用结构体指针做函数参数进行模块化开发

99.
100、通过内存监视观察结构体对象做形参时对实参的影响

100.
101、通过内存监视观察结构体指针做形参时对实参的影响

101.
102、通过深入研究编译原理与程序加载原理了解内存四区

102.
103、通过对比打印了解全局区变量与栈区变量的内存特点

103.
104、使用结构体指针做参数查询数组内的最大值

104.
105、匈牙利命名法与大驼峰小驼峰命名法

105.
106、使用结构体指针做参数对结构体数组排序

106.
107、使用全局变量与随机数相结合实现趣味统计

107.
108、通过函数声明实现跨文件函数调用的功能

108.
109、通过函数声明实现多层次代码工程管理

109.
110、通过多源文件工程管理了解编译与连接的原理

110.
111、通过多个小工程开发训练连跨文件工程管理

111.
112、通过业务层与算法层实施架构信息管理软件工程

112.
113、通过业务层与算法层结合开发信息添加与显示功能

113.
114、动态数组关键算法原理之删除节点开发与过程观测

114.
115、通过Ai学习fopen和fread-fwrite等文件读写函数

115.
116、调用fread和fwrite实现项目数据存储

116.
117、详解fread和fwrite函数的参数与返回值

117.
118、通过二级菜单实现多种排序方式选择

118.
119、简单介绍自定义头文件的定义和调用规则

119.
120、使用二级子菜单开发实现多列数据排序功能

120.
121、初步学习malloc与free动态内存分配方法

121.
122、讲解动态数组的数据结构并进行简单测试

122.
123、使用动态数组的数据结构进行项目架构设计

123.
124、使用动态数组开发信息管理项目的文件加载功能

124.
125、使用动态数组开发信息管理项目的数据修改功能

125.
126、使用动态数组开发信息管理项目的多列数据排序功能

126.
127、C语言结局小语法汇总之预定义语句与宏函数

127.
128、上位机开发课程规划与#if条件编译语法介绍

128.
129、条件编译的各种应用场景与系统内置宏简介

129.
130、const、define和enum常量定义的语法介绍

130.
131、动态链表的数据结构原理介绍与功能测试

131.
132、通过代码样例了解单向链表的头插法和尾插法的原理

132.
133、单向链表项目开发过程的软件架构分析与项目实施方法

133.
134、单向链表项目数据的保存和加载功能开发与算法分析

134.
135、单向链表项目数据修改与删除以及排序算法原理

135.
136、通过简单数组演示选择排序的算法原理

136.
137、通过选择排序实现单向链表排序的算法

137.
138、单向链表排序在信息管理项目开发中的应用

138.
139、union共用体(联合体)的语法简介

139.
140、结构体字节对齐的问题与设置方法

140.
141、二维数组的概念、定义与调用方法

141.
142、脑洞大开的三种方法实现随机浮点数生成

142.
143、RAND_MAX与0到1之间的小数生成原理

143.
144、二维数组的横向与纵向统计的功能开发

144.
145、简要介绍C++与标准C++的概念与区别

2

资源选择

已下载 0 次 评分 5

获取方式

详情介绍
智行者IC社区持续更新技术干货、实操教程、案例分享与常见问题解答,为学习者提供实用的学习参考资料。

这套 C 语言视频课一共 144 讲,讲法是”从硬件那一侧往上看软件”。不少教程一上来就带你打印 Hello World,然后背语法,背完还是不知道指针到底在干嘛。这门课的起点不一样:第 1 讲先把课程大纲和上位机开发的学习路线铺开,第 2 讲聊聊人工智能与自动化设备开发是怎么回事,第 3 讲装上 VS2022 跑通第一个程序,第 4 讲讨论 C# 的语言生态,第 5 讲用 C 写一个控制台程序做对比。先把坐标系建好,再往下走。

接下来这段是很多人会跳过的,但恰恰决定了后面能不能学通。第 6 讲讲编译原理,讲操作系统是怎么把一个程序从磁盘拉进内存跑起来的;第 7 讲用反复调试同一个程序的办法,让你亲眼看到变量在内存里是怎么摆放的。这一段听懂了,后面打开调试器的内存窗口才不会发懵,那一串十六进制数你才知道对应的是什么。

C 语言课程学习路线:从环境搭建到信息管理项目实战的五个阶段
课程按课时顺序分成五个阶段,前两段打基础,中间三段全部围绕指针和数据结构展开。

第 34 讲往下的二进制、十六进制、符号位、变量溢出,不是照着 PPT 念结论。课程用 sizeof 配合循环,把 1 到 8 个字节的整型取值范围一个个算出来,算完你就明白为什么 char 是 -128 到 127、为什么 255 再加 1 会变成 0。第 37 讲通过写循环程序求 64 位整型的最大值,第 39 讲把 sizeof 和二进制、十进制的转换算法放在一起讲,第 41 讲还用位运算反复优化同一个程序的执行效率。运算符优先级、ASCII 表、转义字符,以及 printf 和 scanf 的各种控制符集中放在第 50 到 58 讲,第 52 讲专门解释 scanf 为什么不安全、scanf_s 该怎么用,第 54 讲把回车和换行的区别讲透——这些是后面写代码时每天都要查的东西,早点搞熟省事。

数组和字符串这一块几乎全是动手题。第 62 讲用 sizeof 和 _countof 求数组元素个数,第 63 讲演示数组越界访问内存的严重 bug,第 64 到 67 讲连着做四道算法题:求最大值最小值、多种方法实现反序、元素查找、排列组合里搜索相同的对数。第 68 讲讲用和差算法等几种办法交换变量,第 69 讲通过反复测试来理解随机数和时间函数。第 72、73 讲是两个经典 bug 分析——strcpy 和 strcat 调用时数组越界之后内存里到底发生了什么;讲这个不是让你记住”要用 strncpy”,而是让你看到越界写坏的是哪块地址。

函数从第 74 讲展开。第 76 讲用九次改写,一步步完善和优化 strcpy 函数的实现原理;第 77 讲用最简易高效的方式实现 strcat;第 78 讲演示数组做形参时的经典 bug 和解决方案。第 79、80 讲深入拆解 strcmp 的比较条件与算法优化,第 81 讲通过反复测试剖析冒泡排序的过程。后面延伸到多源文件的工程管理,以及编译和连接这两个动作到底做了什么。

指针是这门课花时间最多的部分,第 83 到 94 讲几乎每一节都开着内存监视器在讲。第 83 讲用内存观测器引入指针变量的概念与定义,第 84 讲演示通过指针遥控内存里的变量改变数值,第 85 讲用三种 swap 函数对比指针做参数对实参的不同影响,第 86 讲看指针做参数对数组变量的影响,第 87 讲利用指针偏移实现高级内存操作,第 89、90 讲梳理不同类型指针操作内存时的长度、以及指针升降级符号之间的等价关系。第 91 到 94 讲用指针法重写 strcpy,并把 strchr、strpbrk 的原理和指针减法计算一起实现一遍。全部落在地址和字节的层面上,能一条一条对上号。

C 语言指针变量与内存视图:指针保存的是变量的内存地址
指针 p 里存的不是 66,而是变量 a 的内存地址;*p 就是顺着这个地址找到那块内存。

指针这一段啃下来,结构体、内存四区、malloc 与 free 就顺理成章了。第 95 到 97 讲讲结构体的概念、定义和成员调用,以及 typedef 与 struct 的复杂定义方式;第 98 讲开始用结构体数组做信息管理,第 99 到 101 讲通过内存监视观察结构体对象、结构体指针做形参时对实参的影响。第 102、103 讲从编译原理和程序加载原理出发,把栈区、堆区、全局区、代码区这四块内存分清楚。第 105 讲顺带讲了匈牙利命名法和大小驼峰命名法,第 108 到 111 讲跨文件工程怎么组织、编译与连接在其中扮演什么角色。

后半段是三个能拿得出手的项目,而且是用同一个需求反复重写。第 98 讲先用结构体数组做一版信息管理,固定容量、下标访问、新增修改删除、多列排序;第 112、113 讲把界面和算法拆成业务层与算法层两层,工程结构第一次成形;第 114 到 120 讲补上动态数组的节点删除算法、fopen 与 fread/fwrite 文件读写、项目数据存取、二级菜单选择排序方式、自定义头文件,以及多列数据排序功能;第 121 到 126 讲正式换成 malloc 动态内存分配,容量按需增长,把动态数组项目的架构设计、文件加载、数据修改、多列排序完整实现一遍;第 131 到 138 讲再升级成单向链表,头插法与尾插法、软件架构分析、数据的保存加载、修改删除,以及选择排序在链表上的实现。四个版本功能一模一样,差别只在底层的数据结构——这才是这门课最值钱的地方。数据统一用 fopen、fread、fwrite 存在本地文件里,程序下次启动自动加载回来。

C 语言信息管理项目的四个版本:结构体数组、业务层与算法层、动态数组、单向链表
同一个信息管理项目重写四遍,需求不变,底层数据结构从固定数组一路升级到单向链表。

最后收在上班最常踩坑的语法上。第 127 讲到 130 讲讲预定义语句与宏函数、#if 条件编译的各种应用场景与系统内置宏,以及 const、define、enum 三种常量定义的语法区别;第 139 讲 union 共用体;第 140 讲结构体字节对齐的问题与设置方法,这一条在和硬件寄存器打交道时特别重要;第 141 到 144 讲二维数组的定义与调用、三种方法实现随机浮点数生成、RAND_MAX 与 0 到 1 之间小数的生成原理,以及二维数组的横向纵向统计功能开发;第 145 讲顺带把 C 与标准 C++ 的概念和区别讲清楚,方便你判断下一步该往哪走。

这套课适合谁来学:想转嵌入式或者上位机开发、但 C 基础一直不牢的;电子、自动化、机电专业还在读书的;工作里要读别人写的驱动代码、经常被指针和结构体绕晕的。学之前不用会编程,能装软件、能坐得住就行。建议从第 1 讲顺着往下看,每讲的代码自己敲一遍再走下一讲,比倍速刷完有用得多。

视频已经按课时编号排好,也可以直接在下面的目录里点着跳。

课程目录(按课时顺序)

 

常见问题(FAQ)

这门 C 语言视频课一共多少讲?适合零基础吗?
课程共 144 讲,从第 1 讲课程大纲和第 3 讲安装 VS2022 跑通第一个程序开始,不需要编程基础,能装软件、能坐得住即可。建议从第 1 讲顺着往下看,每讲代码自己敲一遍再进入下一讲。
这门课和常见的 C 语言教程有什么不同?
常见教程从打印 Hello World 开始背语法,这门课从硬件那一侧往上看软件:先讲编译原理和程序如何从磁盘加载进内存,再用内存监视器反复调试同一个程序,让你亲眼看到变量在内存里的摆放。指针部分几乎每节都开着内存监视器讲解,全部落在地址和字节层面。
课程中指针部分是怎么讲的?
第 83 到 94 讲集中讲指针,用内存观测器引入指针变量、演示通过指针遥控内存改变数值、用三种 swap 函数对比指针做参数的影响、利用指针偏移实现高级内存操作,并用指针法重写 strcpy,实现 strchr、strpbrk 原理和指针减法计算。核心结论是指针 p 里存的不是 66,而是变量 a 的内存地址,*p 就是顺着地址找到那块内存。
课程里的项目实战是怎么安排的?
同一个信息管理项目重写四遍,需求不变,底层数据结构从固定数组升级到动态数组再到单向链表。第 98 讲用结构体数组做第一版,第 112 到 126 讲拆分层级并换成 malloc 动态内存分配,第 131 到 138 讲升级成单向链表,实现头插法、尾插法、数据保存加载、修改删除和链表上的选择排序。数据统一用 fopen、fread、fwrite 存在本地文件,程序下次启动自动加载。
这门课适合哪些人学?学完能做什么?
适合想转嵌入式或上位机开发但 C 基础不牢的、电子自动化机电专业在读的、工作中需要读别人驱动代码且常被指针和结构体绕晕的人。学完能理解编译连接过程、内存四区、指针与数组的底层关系,能独立完成基于固定数组、动态数组和单向链表的数据管理项目,并具备继续学习 C++ 或嵌入式开发的基础。
0 / 600
2 讨论
热门最新
总结

很好的

江苏省

后台开启评论后测试

江苏省