第1篇 C语言入门
第1章 Linux C语言的开发环境
1.1 编译语言的基本认识
1.1.1 编译器与解释器
1.1.2 解释性语言与编译语言的比较
1.2 GCC简介
1.3 C程序的开发过程
1.4 编辑一个C程序
1.5 C程序编译与执行
1.5.1 编译与执行程序
1.5.2 程序源文件发生错误
1.6 在Linux开发程序的技巧
1.7 习题
第2章 C程序初步
2.1 一个C程序的例子
2.2 C程序的基本结构
2.3 函数的概念
2.4 字符、字符串、数组与指针
2.5 循环控制
2.6 if语句及==%&运算符
2.6.1 if流程控制语句
2.6.2 ==与=
2.6.3 逻辑运算符
2.6.4 输入函数scanf()
2.6.5 运算符&
2.7 编写C程序的注意事项
2.7.1 变量的初值赋值
2.7.2 指针的初始值设置
2.7.3 ";"与C语言的自由格式
2.7.4 语句的集合
2.7.5 关键字
2.8 回顾与总结
2.9 习题
第3章 C语言的工作环境支持--函数库及整台服务
3.1 C语言是没有I/O的语言
3.2 I/O转向的概念
3.3 标准I/O的函数群
3.3.1 函数库
3.3.2 I/0函数群
3.3.3 prinft():格式化输出函数
3.3.4 格式化输入函数
3.3.5 &与*运算符
3.4 #define与常量名
3.4.1 常量的概念
3.4.2 使用常量名
3.5 观察预处理的结果
3.6 #include与stdio.h
3.6.1 #incIude的用法
3.6.2 包含子程序文件
3.7 使用make命令
3.7.1 makefi1e的结构
3.7.2 makefile的简化及宏
3.7.3 常用的make参数
3.8 习题
第2篇 C语言详解
第4章 C语言的数据类型
4.1 数据类型的变革
4.1.1 数据类型
4.1.2 C语言的数据类型
4.2 C语言的基本数据类型
4.2.1 数据的长度
4.2.2 整型的修饰符
4.2.3 数据类型的用法
4.3 数据的表示法
4.3.1 字符类型
4.3.2 int:整型
4.3.3 浮点数与双精度数
4.3.4 双精度浮点数类型
4.3.5 void类型
4.4 中文字体处理
4.4.1 中文字体码的问题
4.4.2 如何显示及输入中文字
4.5 习题
第5章 变量、运算符与运算式
5.1 变量与标识符
5.2 运算符与表达式
5.2.1 运算符
5.2.2 表达式
5.3 四则运算符、;与%
5.3.1 =运算符
5.3.2 四则运算符与%
5.3.3 =与运算符的合并
5.3.4 ++与--运算符
5.3.5 比较用的运算符
5.3.6 逻辑运算符
5.3.7 位逻辑运算符
5.3.8 条件运算符
5.3.9 sizeof运算符
5.3.10 其他运算符
5.4 运算符的优先级与结合性
5.5 表达式中的类型转换
5.6 强制的类型转换
5.7 习题
第6章 程序的流程控制
6.1 C语言的流程控制
6.1.1 语句的集合
6.1.2 条件表达式的真假
6.2 条件判断if...else
6.2.1 if语句
6.2.2 多重的if语句
6.2.3 if...else语句
6.2.4 if-else的变形一:嵌套式if...else
6.2.5 1f-else的变形二:else...if语句
6.2.6 if-else的变形三
6.2.7 使用if...else的注意事项
6.3 多重选择的switch...case
6.3.1 switch...case
6.3.2 break
6.3.3 default
6.4 循环控制:while、do...while、for与continue
6.4.1 预先判断式循环While
6.2 后设判断式循环do...while
6.4.3 for循环
6.4.4 各种循环的使用时机
6.4.5 循环控制中的break
6.4.6 continue语句
6.5 强制性的流程控制goto
6.6 习题
第7章 函数与宏
7.1 函数简介
7.2 函数的定义与类型声明
7.2.1 ANSI函数定义与声明
7.2.2 函数的返回值
7.2.3 函数的类型
7.2.4 void类型
7.3 递归函数
7.4 预处理器
7.4.1 宏指令
7.4.2 带参数的宏定义
7.4.3 利用宏来调试
7.4.4 #undef的使用
7.4.5 条件性编译指令
7.5 标准函数库
7.5.1 math.h
7.5.2 stdlib.h
7.5.3 time.h
7.5.4 其他的标准函数库
7.6 习题
第8章 指针与数组
8.1 指针与&、*运算符
8.1.1 指针的声明
8.1.2 &运算符的使用方法
8.1.3 运算符的使用方法
8.1.4 指针的初始化
8.1.5 指针的转型
8.2 以指针来传递参数
8.2.1 以指针传递变量地址
8.2.2 以指针返回字符串地址
8.3 指针与数组的关系
8.3.1 以指针传递数组地址
8.3.2 概念的澄清
8.3.3 指针的运算
8.4 多维数组及其设置
8.4.1 多维数组
8.4.2 数组指针
8.4.3 把多维数组传入函数
8.5 指针数组、指针的指针
8.5.1 指针数组
8.5.2 指针的指针
8.6 命令参数的引入:argc、argv
8.7 习题
第9章 变量等级
9.1 C程序的结构与变量等级
9.2 内部变量
9.2.1 内部变量的范围
9.2.2 内部变量的生命周期
9.2.3 内部变量的优缺点
9.2.4 区段的构造与范围
9.3 静态内部变量
9.4 外部变量
9.4.1 外部变量的范围
9.4.2 外部变量的生命周期
9.4.3 外部变量的优缺点
9.5 静态外部变量
9.6 函数是外部个体
9.7 register变量
9.8 习题
第10章 用户自定义数据类型--结构体与共用体
10.1 结构体
10.1.1 可由用户自定义的数据类型
10.1.2 结构体的声明
10.1.3 结构体的数组
10.1.4 结构体的初始设置
10.2 存取结构体数据
10.3 结构体指针
10.3.1 -)运算符
10.3.2 结构体的结构体
10.4 结构体与函数
10.4.1 把结构体指针传入函数
10.4.2 把结构体直接传入函数
10.5 共用体的使用
10.6 位段的使用
10.7 枚举型
10.8 类型名称定义typedef
10.9 习题
第11章 文件处理
11.1 文件I/O与操作系统的关系
11.1.1 标准I/0函数库
11.1.2 Linux的I/o函数群
11.2 C语言的文件概念
11.2.1 Stream
11.2.2 FILE类型
11.2.3 文件的打开和关闭
11.2.4 缓冲式I/O
11.3 C语言的文件I/O函数群
11.3.1 读写文件字符:fgetc()、fputc()
11.3.2 字符串I/O:fgets()、fputs()
11.3.3 格式化I/O: fscanf()、fprintf()
11.4 顺序与随机读写
11.4.1 文件位置指针
11.4.2 fseek()函数
11.4.3 ftell()函数
11.4.4 fopen()的"十"更新模式
11.5 文件的格式分类
11.5.1 文本文件
11.5.2 二进制文件
11.5.3 设备文件
11.6 使用二进制文件
11.6.1 fopen()的另外3种文件设置模式
11.6.2 读写二进制文件
11.6.3 与结构体配合
11.7 习题
第12章 系统调用函数
12.1 认识系统调用
12.1.1 判断某个函数是属于系统调用或标准函数库函数
12.1.2 系统调用使用上的限制
12.2 取得与设置系统信息
12.2.1 取得操作系统名称、版本、网址及计算机类型
12.2.2 取得与设置网址
12.2.3 取得系统运行的状态
12.2.4 取得文件系统的状态
12.3 文件与目录管理
12.3.1 取得文件的状态
12.3.2 更改文件的权限与拥有者
12.3.3 创建文件的链接或符号链接
12.3.4 删除文件
12.3.5 创建与删除目录
12.3.6 取得与切换工作目录
12.4 习题
附 录
附录A GCC参数说明
附录B 利用gdb调试
附录C 集成开发环境
附录D VIM文本编辑器