一站式学习C编程
作者: 宋劲杉 编著
出版时间:2011
《一站式学习c编程》有两条线索,一条线索是以linux平台为载体全面深入地介绍c语言的语法和程序的工作原理,另一条线索是介绍程序设计的基本思想和开发调试方法。本书分为两部分:第一部分讲解编程语言和程序设计的基本思想方法,让读者从概念上认识c语言;第二部分结合操作系统和体系结构的知识讲解程序的工作原理,让读者从本质上认识c语言。《一站式学习c编程》适合做零基础的初学者学习c语言的第一本教材,帮助读者打下牢固的基础。有一定的编程经验但知识体系不够完整的读者也可以对照本书查缺补漏,从而更深入地理解程序的工作原理。《一站式学习c编程》最初是为北京亚嵌教育研究中心的嵌入式linux系统工程师就业班课程量身定做的教材之一,也适合作为高等院校程序设计基础课程的教材。本书对于c语言的语法介绍得非常全面,对c99标准做了很多解读,因此也可以作为一本精简的c语言语法参 考书。
目录
- 上篇 C语言入门
- 第1章 程序的基本概念
- 1.1 程序和编程语言
- 1.2 自然语言和形式语言
- 1.3 程序的调试
- 1.4 第一个程序
- 第2章 常量、变量和表达式
- 2.1 继续Hello World
- 2.2 常量
- 2.3 变量
- 2.4 赋值
- 2.5 表达式
- 2.6 字符类型与字符编码
- 第3章 简单函数
- 3.1 数学函数
- 3.2 自定义函数
- 3.3 形参和实参
- 3.4 全局变量、局部变量和作用域
- 第4章 分支语句
- 4.1 if语句
- 4.2 if/else语句
- 4.3 布尔代数
- 4.4 switch语句
- 第5章 深入理解函数
- 5.1 return语句
- 5.2 增量式开发
- 5.3 递归
- 第6章 循环语句
- 6.1 while语句
- 6.2 do/while语句
- 6.3 for语句
- 6.4 break和continue语句
- 6.5 嵌套循环
- 6.6 goto语句和标号
- 第7章 结构体
- 7.1 复合类型与结构体
- 7.2 数据抽象
- 7.3 数据类型标志
- 7.4 嵌套结构体
- 第8章 数组
- 8.1 数组的基本概念
- 8.2 数组应用实例:统计随机数
- 8.3 数组应用实例:直方图
- 8.4 字符串
- 8.5 多维数组
- 第9章 编码风格
- 9.1 缩进和空白
- 9.2 注释
- 9.3 标识符命名
- 9.4 函数
- 9.5 indent工具
- 第10章 gdb
- 10.1 单步执行和跟踪函数调用
- 10.2 断点
- 10.3 观察点
- 10.4 段错误
- 第11章 排序与查找
- 11.1 算法的概念
- 11.2 插入排序
- 11.3 算法的时间复杂度分析
- 11.4 归并排序
- 11.5 线性查找
- 11.6 折半查找
- 第12章 栈与队列
- 12.1 数据结构的概念
- 12.2 堆栈
- 12.3 深度优先搜索
- 12.4 队列与广度优先搜索
- 12.5 环形队列
- 本阶段总结
- 下篇 C语言本质
- 第13章 计算机中数的表示
- 13.1 为什么计算机用二进制计数
- 13.2 不同进制之间的换算
- 13.3 整数的加减运算
- 13.3.1 Sign and Magnitude表示法
- 13.3.2 1's Complement表示法
- 13.3.3 2's Complement表示法
- 13.3.4 有符号数和无符号数
- 13.4 浮点数
- 第14章 数据类型详解
- 14.1 整型
- 14.2 浮点型
- 14.3 类型转换
- 14.3.1 Integer Promotion
- 14.3.2 Usual Arithmetic Conversion
- 14.3.3 由赋值产生的类型转换
- 14.3.4 强制类型转换
- 14.3.5 编译器如何处理类型转换
- 第15章 运算符详解
- 15.1 位运算
- 15.1.1 按位与、或、异或、取反运算
- 15.1.2 移位运算
- 15.1.3 掩码
- 15.1.4 异或运算的一些特性
- 15.2 其他运算符
- 15.2.1 复合赋值运算符
- 15.2.2 条件运算符
- 15.2.3 逗号运算符
- 15.2.4 sizeof运算符与typedef类型声明
- 15.3 Side Effect与Sequence Point
- 15.4 运算符总结
- 第16章 计算机体系结构基础
- 16.1 内存与地址
- 16.2 CPU
- 16.3 设备
- 16.4 MMU
- 16.5 Memory Hierarchy
- 第17章 x86汇编程序基础
- 17.1 最简单的汇编程序
- 17.2 x86的寄存器
- 17.3 第二个汇编程序
- 17.4 寻址方式
- 17.5 ELF文件
- 17.5.1 目标文件
- 17.5.2 可执行文件
- 第18章 汇编与C之间的关系
- 18.1 函数调用
- 18.2 main函数、启动例程和退出状态
- 18.3 变量的存储布局
- 18.4 结构体和联合体
- 18.5 C内联汇编
- 18.6 volatile限定符
- 第19章 链接详解
- 19.1 多目标文件的链接
- 19.2 定义和声明
- 19.2.1 extern和static关键字
- 19.2.2 头文件
- 19.2.3 定义和声明的详细规则
- 19.3 静态库
- 19.4 共享库
- 19.4.1 编译、链接、运行
- 19.4.2 函数的动态链接过程
- 19.4.3 共享库的命名惯例
- 19.5 虚拟内存管理
- 第20章 预处理
- 20.1 预处理的步骤
- 20.2 宏定义
- 20.2.1 函数式宏定义
- 20.2.2 内联函数
- 20.2.3 #、##运算符和可变参数
- 20.2.4 #undef预处理指示
- 20.2.5 宏展开的步骤
- 20.3 条件预处理指示
- 20.4 其他预处理特性
- 第21章 Makefile基础
- 21.1 基本规则
- 21.2 隐含规则和模式规则
- 21.3 变量
- 21.4 自动处理头文件的依赖关系
- 21.5 常用的make命令行选项
- 第22章 指针
- 22.1 指针的基本概念
- 22.2 指针类型的参数和返回值
- 22.3 指针与数组
- 22.4 指针与const限定符
- 22.5 指针与结构体
- 22.6 指向指针的指针与指针数组
- 22.7 指向数组的指针与多维数组
- 22.8 函数类型和函数指针类型
- 22.9 不完全类型和复杂声明
- 第23章 函数接口
- 23.1 本章的预备知识
- 23.1.1 strcpy与strncpy
- 23.1.2 malloc与free
- 23.2 传入参数与传出参数
- 23.3 两层指针的参数
- 23.4 返回值是指针的情况
- 23.5 回调函数
- 23.6 可变参数
- 第24章 C标准库
- 24.1 字符串操作函数
- 24.1.1 给字符串赋初值
- 24.1.2 取字符串的长度
- 24.1.3 拷贝字符串
- 24.1.4 连接字符串
- 24.1.5 比较字符串
- 24.1.6 搜索字符串
- 24.1.7 分割字符串
- 24.2 标准I/O库函数
- 24.2.1 文件的基本概念
- 24.2.2 fopen/fclose
- 24.2.3 stdin/stdout/stderr
- 24.2.4 errno与perror/strerror函数
- 24.2.5 以字节为单位的I/O函数
- 24.2.6 操作读写位置的函数
- 24.2.7 以字符串为单位的I/O函数
- 24.2.8 以记录为单位的I/O函数
- 24.2.9 格式化I/O函数
- 24.2.10 C标准库的I/O缓冲区
- 24.2.11 本节综合练习
- 24.3 数值字符串转换函数
- 24.4 分配内存的函数
- 第25章 链表、二叉树和哈希表
- 25.1 链表
- 25.1.1 单链表
- 25.1.2 双向链表
- 25.1.3 静态链表
- 25.1.4 本节综合练习
- 25.2 二叉树
- 25.2.1 二叉树的基本概念
- 25.2.2 排序二叉树
- 25.3 哈希表
- 本阶段总结
- 附录A 字符编码
- 索引
-
参考文献