《一站式学习c编程》
         上篇 c语言入门
         第1章 程序的基本概念 2
         1.1 程序和编程语言 2
         1.2 自然语言和形式语言 6
         1.3 程序的调试 8
         1.4 第一个程序 9
         第2章 常量、变量和表达式 13
         2.1 继续hello world 13
         2.2 常量 16
         2.3 变量 17
         2.4 赋值 19
         2.5 表达式 20
         2.6 字符类型与字符编码 24
         第3章 简单函数 26
         3.1 数学函数 26
         3.2 自定义函数 28
         3.3 形参和实参 34
         3.4 全局变量、局部变量和作用域 38
         第4章 分支语句 44
         .4.1 if语句 44
         4.2 if/else语句 46
         4.3 布尔代数 48
         4.4 switch语句 52
         第5章 深入理解函数 54
         5.1 return语句 54
         5.2 增量式开发 57
         5.3 递归 61
         第6章 循环语句 67
         6.1 while语句 67
         6.2 do/while语句 69
         6.3 for语句 70
         6.4 break和continue语句 72
         6.5 嵌套循环 73
         6.6 goto语句和标号 74
         第7章 结构体 78
         7.1 复合类型与结构体 78
         7.2 数据抽象 82
         7.3 数据类型标志 86
         7.4 嵌套结构体 87
         第8章 数组 89
         8.1 数组的基本概念 89
         8.2 数组应用实例:统计随机数 92
         8.3 数组应用实例:直方图 95
         8.4 字符串 98
         8.5 多维数组 100
         第9章 编码风格 104
         9.1 缩进和空白 104
         9.2 注释 108
         9.3 标识符命名 112
         9.4 函数 112
         9.5 indent工具 113
         第10章 gdb 115
         10.1 单步执行和跟踪函数调用 115
         10.2 断点 122
         10.3 观察点 126
         10.4 段错误 130
         第11章 排序与查找 133
         11.1 算法的概念 133
         11.2 插入排序 134
         11.3 算法的时间复杂度分析 136
         11.4 归并排序 138
         11.5 线性查找 143
         11.6 折半查找 144
         第12章 栈与队列 149
         12.1 数据结构的概念 149
         12.2 堆栈 149
         12.3 深度优先搜索 151
         12.4 队列与广度优先搜索 157
         12.5 环形队列 162
         本阶段总结 163
         下篇 c语言本质
         第13章 计算机中数的表示 166
         13.1 为什么计算机用二进制计数 166
         13.2 不同进制之间的换算 168
         13.3 整数的加减运算 170
         13.3.1 sign and magnitude表示法 170
         13.3.2 1's complement表示法 170
         13.3.3 2's complement表示法 172
         13.3.4 有符号数和无符号数 173
         13.4 浮点数 173
         第14章 数据类型详解 176
         14.1 整型 176
         14.2 浮点型 180
         14.3 类型转换 181
         14.3.1 integer promotion 181
         14.3.2 usual arithmetic conversion 182
         14.3.3 由赋值产生的类型转换 183
         14.3.4 强制类型转换 183
         14.3.5 编译器如何处理类型转换 184
         第15章 运算符详解 186
         15.1 位运算 186
         15.1.1 按位与、或、异或、取反运算 186
         15.1.2 移位运算 187
         15.1.3 掩码 188
         15.1.4 异或运算的一些特性 189
         15.2 其他运算符 190
         15.2.1 复合赋值运算符 190
         15.2.2 条件运算符 190
         15.2.3 逗号运算符 191
         15.2.4 sizeof运算符与typedef类型声明 191
         15.3 side effect与sequence point 193
         15.4 运算符总结 196
         第16章 计算机体系结构基础 198
         16.1 内存与地址 198
         16.2 cpu 198
         16.3 设备 201
         16.4 mmu 203
         16.5 memory hierarchy 205
         第17章 x86汇编程序基础 209
         17.1 最简单的汇编程序 209
         17.2 x86的寄存器 212
         17.3 第二个汇编程序 212
         17.4 寻址方式 215
         17.5 elf文件 216
         17.5.1 目标文件 217
         17.5.2 可执行文件 223
         第18章 汇编与c之间的关系 229
         18.1 函数调用 229
         18.2 main函数、启动例程和退出状态 236
         18.3 变量的存储布局 242
         18.4 结构体和联合体 249
         18.5 c内联汇编 254
         18.6 volatile限定符 255
         第19章 链接详解 260
         19.1 多目标文件的链接 260
         19.2 定义和声明 266
         19.2.1 extern和static关键字 266
         19.2.2 头文件 269
         19.2.3 定义和声明的详细规则 274
         19.3 静态库 276
         19.4 共享库 279
         19.4.1 编译、链接、运行 279
         19.4.2 函数的动态链接过程 286
         19.4.3 共享库的命名惯例 288
         19.5 虚拟内存管理 290
         第20章 预处理 296
         20.1 预处理的步骤 296
         20.2 宏定义 297
         20.2.1 函数式宏定义 297
         20.2.2 内联函数 300
         20.2.3 #、##运算符和可变参数 301
         20.2.4 #undef预处理指示 304
         20.2.5 宏展开的步骤 304
         20.3 条件预处理指示 305
         20.4 其他预处理特性 309
         第21章 makefile基础 312
         21.1 基本规则 312
         21.2 隐含规则和模式规则 319
         21.3 变量 322
         21.4 自动处理头文件的依赖关系 327
         21.5 常用的make命令行选项 331
         第22章 指针 334
         22.1 指针的基本概念 334
         22.2 指针类型的参数和返回值 337
         22.3 指针与数组 339
         22.4 指针与const限定符 342
         22.5 指针与结构体 344
         22.6 指向指针的指针与指针数组 344
         22.7 指向数组的指针与多维数组 348
         22.8 函数类型和函数指针类型 349
         22.9 不完全类型和复杂声明 353
         第23章 函数接口 357
         23.1 本章的预备知识 357
         23.1.1 strcpy与strncpy 357
         23.1.2 malloc与free 362
         23.2 传入参数与传出参数 367
         23.3 两层指针的参数 368
         23.4 返回值是指针的情况 370
         23.5 回调函数 373
         23.6 可变参数 376
         第24章 c标准库 380
         24.1 字符串操作函数 381
         24.1.1 给字符串赋初值 381
         24.1.2 取字符串的长度 382
         24.1.3 拷贝字符串 383
         24.1.4 连接字符串 385
         24.1.5 比较字符串 386
         24.1.6 搜索字符串 387
         24.1.7 分割字符串 387
         24.2 标准i/o库函数 391
         24.2.1 文件的基本概念 391
         24.2.2 fopen/fclose 392
         24.2.3 stdin/stdout/stderr 395
         24.2.4 errno与perror/strerror函数 396
         24.2.5 以字节为单位的i/o函数 398
         24.2.6 操作读写位置的函数 401
         24.2.7 以字符串为单位的i/o函数 403
         24.2.8 以记录为单位的i/o函数 404
         24.2.9 格式化i/o函数 406
         24.2.10 c标准库的i/o缓冲区 413
         24.2.11 本节综合练习 417
         24.3 数值字符串转换函数 418
         24.4 分配内存的函数 420
         第25章 链表、二叉树和哈希表 422
         25.1 链表 422
         25.1.1 单链表 422
         25.1.2 双向链表 428
         25.1.3 静态链表 433
         25.1.4 本节综合练习 433
         25.2 二叉树 434
         25.2.1 二叉树的基本概念 434
         25.2.2 排序二叉树 439
         25.3 哈希表 443
         本阶段总结 445
         附录a 字符编码 449
         参考文献 456
         索引 458
      · · · · · ·     (
收起)