《零基础入门学习C语言——带你学C带你飞(微课视频版)》提倡“理解为主,应用为王”,通过列举一些有趣的例子,让读者在实践中理解概念。《零基础入门学习C语言——带你学C带你飞(微课视频版)》从变量、数据类型、取值范围等基本知识开始讲解,深入介绍分支与循环,讲到指针的时候,分散难点,依次讲解数组与指针、函数与指针、结构体与指针,每个知识点结合恰当的实例进行演示,环环相扣,内容详尽。编程知识深似海,小甲鱼没办法仅通过一《零基础入门学习C语言——带你学C带你飞(微课视频版)》将所有的知识都灌输给读者,但能够做到的是培养读者对编程的兴趣,提高编写代码的水平,锻炼自学的能力。《零基础入门学习C语言——带你学C带你飞(微课视频版)》贯彻的核心理念是:实用、好玩、参与。
第1章初窥门径 1
视频讲解:121分钟(9个)钟
1.1C语言被淘汰了吗 1
1.2莫尔斯密码 2
1.3机器语言 2
1.4汇编语言 3
1.5C语言 4
1.6C语言的优势 5
1.7第一个程序 6
1.8打印 7
1.9变量 11
1.10常量 14
1.10.1定义符号常量 14
1.10.2标识符 15
1.10.3字符串常量 15
1.11数据类型 16
1.12sizeof运算符 17
1.13signed和unsigned 19
1.14取值范围 20
1.15字符 25
1.16字符串 28
1.17运算符 30
1.17.1算术运算符 31
1.17.2目 31
1.17.3表达式 32
1.17.4运算符的优先级和结合性 32
1.17.5类型转换 34
第2章了不起的分支和循环 37
视频讲解:128分钟(7个)钟
2.1分支结构 37
2.1.1关系运算符 37
2.1.2关系表达式 38
2.1.3逻辑运算符 38
2.1.4逻辑表达式 39
2.1.5短路求值 40
2.1.6if语句 41
2.1.7switch语句 46
2.1.8分支结构的嵌套 48
2.1.9悬挂else 51
2.1.10等于号带来的问题 53
2.2循环结构 54
2.2.1while语句 54
2.2.2do-while语句 57
2.2.3for语句 58
2.2.4灵活的for语句 60
2.2.5循环结构的嵌套 63
2.2.6break语句 65
2.2.7continue语句 68
2.3拾遗 69
2.3.1赋值运算符 69
2.3.2复合的赋值运算符 70
2.3.3自增自减运算符 70
2.3.4逗号运算符 71
2.3.5条件运算符 72
2.3.6goto语句 73
2.3.7注释 74
第3章数组 76
视频讲解:67分钟(4个)钟
3.1一维数组 77 [2]
3.1.1定义一维数组 77
3.1.2访问一维数组 77
3.1.3循环与数组的关系 78
3.1.4数组的初始化 79
3.1.5可变长数组 79
3.1.6字符数组 80
3.2字符串处理函数 81
3.2.1获取字符串的长度 81
3.2.2复制字符串 82
3.2.3连接字符串 84
3.2.4比较字符串 85
3.3二维数组 86
3.3.1定义二维数组 86
3.3.2访问二维数组 87
3.3.3二维数组的初始化 87
第4章指针 90
视频讲解:135分钟(7个)钟
4.1指针和指针变量 91
4.1.1定义指针变量 92
4.1.2取地址运算符和取值运算符 92
4.1.3避免访问未初始化的指针 94
4.2指针和数组 94
4.2.1数组的地址 94
4.2.2指向数组的指针 96
4.2.3指针的运算 97
4.2.4指针和数组的区别 99
4.2.5指针数组和数组指针 100
4.2.6指针和二维数组 105
4.2.7数组指针和二维数组 108
4.3void指针 109
4.4NULL指针 112
4.5指向指针的指针 113
4.6指针数组和指向指针的指针 114
4.7再讲数组指针和二维数组 116
4.8常量和指针 118
4.9指向常量的指针 119
4.10常量指针 120
4.10.1指向非常量的常量指针 120
4.10.2指向常量的常量指针 121
4.10.3指向“指向常量的常量指针”的指针 122
第5章函数 124
视频讲解:271分钟(14个)钟
5.1函数的定义和声明 125
5.1.1热身 125
5.1.2函数的定义 126
5.1.3函数的声明 127
5.2函数的参数和返回值 128
5.2.1形参和实参 129
5.2.2传值和传址 130
5.2.3传数组 131
5.2.4可变参数 134
5.3指针函数和函数指针 135
5.3.1指针函数 135
5.3.2误区:返回指向局部变量的指针 136
5.3.3函数指针 137
5.3.4函数指针作为参数 138
5.3.5函数指针作为返回值 139
5.4局部变量和全局变量 140
5.4.1局部变量 140
5.4.2全局变量 142
5.4.3不要大量使用全局变量 145
5.5作用域和链接属性 146
5.5.1代码块作用域 146
5.5.2文件作用域 147
5.5.3原型作用域 148
5.5.4函数作用域 148
5.5.5链接属性 148
5.6生存期和存储类型 151
5.6.1生存期 151
5.6.2存储类型 152
5.7递归 156
5.7.1什么是递归 156
5.7.2递归求阶乘 159
5.7.3汉诺塔 162
5.7.4分治法 165
5.7.5快速排序 166
5.8动态内存管理 168
5.8.1malloc 168
5.8.2free 169
5.8.3内存泄漏 170
5.8.4申请任意尺寸的内存空间 172
5.8.5calloc 175
5.8.6realloc 175
5.9C语言的内存布局 177
5.9.1代码段 179
5.9.2数据段 180
5.9.3BSS段 180
5.9.4堆 182
5.9.5栈 182
5.10高级宏定义 184
5.10.1不带参数的宏定义 185 [2]5.10.2带参数的宏定义 186
5.11内联函数 188
5.12一些鲜为人知的技巧 190
5.12.1#和## 190
5.12.2可变参数 191
第6章结构体 193
视频讲解:205分钟(12个)钟
6.1结构体的声明和定义 193
6.1.1结构体的声明 193
6.1.2结构体的定义 194
6.1.3访问结构体成员 195
6.1.4初始化结构体 197
6.1.5对齐 197
6.2结构体嵌套 199
6.3结构体数组 200
6.4结构体指针 201
6.5传递结构体信息 203
6.5.1传递结构体变量 203
6.5.2传递指向结构体变量的指针 206
6.6动态申请结构体 207
6.7单链表 212
6.7.1在单链表中插入元素(头插法) 214
6.7.2在单链表中插入元素(尾插法) 216
6.7.3搜索单链表 218
6.7.4插入节点到指定位置 219
6.7.5在单链表中删除元素 223
6.8内存池 225
6.9typedef 239
6.9.1给数据类型起别名 239
6.9.2结构体的好搭档 242
6.9.3进阶typedef 244
6.10共用体 249
6.10.1共用体的声明 249
6.10.2共用体的定义 252
6.10.3初始化共用体 252
6.11枚举 253
6.12位域 256
第7章位操作 260
视频讲解:26分钟(2个)钟
7.1逻辑位运算符 261
7.1.1按位取反 262
7.1.2按位与 262
7.1.3按位异或 262
7.1.4按位或 263
7.1.5和赋值号结合 263
7.2移位运算符 264
7.2.1左移运算符 264
7.2.2右移运算符 265
7.2.3和赋值号结合 265
7.2.4一些未定义行为 266
7.3应用 267
7.3.1掩码 267
7.3.2打开位 268
7.3.3关闭位 268
7.3.4转置位 269
第8章文件操作 270
视频讲解:108分钟(6个)钟
8.1文件是什么 270
8.2打开和关闭文件 271
8.3顺序读写文件 273
8.3.1读写单个字符 273
8.3.2读写整个字符串 274
8.3.3格式化读写文件 277
8.3.4二进制读写文件 278
8.4随机读写文件 281
8.5标准流 285
8.5.1标准输入、标准输出和标准错误输出 285
8.5.2重定向 286
8.5.3错误处理 287
8.6I/O缓冲区 291
附录A环境搭建教程 294
A.1安装VirtualBox虚拟机 294
A.2获取CentOS及版本选择 298
A.3在虚拟机上安装CentOS 300
A.4配置CentOS并安装GCC编译器 310
A.5安装图形界面 314
A.6安装中文输入法及设置合适的编程字体 320
A.7安装VirtualBox增强工具及共享文件夹设置 326
A.8设置VIM编辑器 330
A.9MacOS搭建C语言学习环境 332
附录BVIM快速入门 334
B.1使用h、j、k、l来移动光标 334
B.2插入模式和退出VIM的方法 335
B.3删除命令、数字的魔力、撤销和恢复命令 336
B.4粘贴/复制命令、替换命令、替换模式和修改命令 338
B.5文件信息、跳转、定位括号和缩进 339
B.6搜索命令和替换命令 341
B.7执行shell命令、文件另存为、合并文件和打开多个文件 344