第1章Linux C语言程序设计/1
1.1C语言/1
1.1.1C语言简介/1
1.1.2C语言的发展历史/2
1.1.3C语言的特点/2
1.2Linux概述/3
1.3Linux C语言程序设计简介/4
1.3.1Linux应用编程、系统编程和内核编程/4
1.3.2Linux图形界面编程/4
1.4Linux C语言编程环境/5
1.4.1Ubuntu Linux虚拟机/5
1.4.2gedit、vim和nano/5
1.4.3C语言编译器及集成开发环境/6
1.4.4Hello World程序/6
1.5习题/7
第2章C语言基础Ⅰ/9
2.1数据/9
2.1.1数据类型/9
2.1.2常量/11
2.1.3变量和标识符/13
2.1.4数据类型转换/14
2.1.5转义字符(转义序列)/15
2.2运算符/16
2.2.1运算符和表达式/16
2.2.2算术运算/18
2.2.3赋值运算/18
2.2.4关系运算/19
2.2.5逻辑运算符/19
2.2.6条件运算符/20
2.2.7逗号运算符/20
2.2.8sizeof运算符与typedef类型声明/21
2.2.9位运算/21
2.2.10复合赋值运算符/22
2.3结构化程序设计/23
2.3.1顺序结构/23
2.3.2分支结构/24
2.3.3循环结构/26
2.4输入/输出/29
2.4.1标准输出函数printf/30
2.4.2标准输入函数scanf/32
2.5数组/34
2.5.1一维数组/34
2.5.2二维数组/35
2.5.3一维字符数组/36
2.5.4一维字符数组的输入/输出/36
2.5.5字符串处理函数/37
2.5.6二维字符数组/39
2.6习题/40
第3章C语言基础II/44
3.1函数/44
3.1.1C语言库函数/44
3.1.2函数定义和声明/44
3.1.3函数调用及参数传递/46
3.1.4函数的嵌套与递归/49
3.1.5回调函数/50
3.1.6return语句/50
3.1.7全局变量、局部变量和作用域/51
3.1.8变量的存储类别及生存期/52
3.1.9内部函数和外部函数/54
3.2预处理/54
3.2.1预处理的步骤/54
3.2.2宏定义和内联函数/55
3.2.3条件编译/57
3.2.4文件包含/57
3.3指针/58
3.3.1指针的基本运算/58
3.3.2指针与数组/61
3.3.3指针与const限定符/64
3.3.4指针与字符串/65
3.3.5指针函数与函数指针/65
3.3.6再讲回调函数/66
3.3.7可变参数/67
3.3.8二级指针与多级指针/68
3.3.9指针数组和数组指针/69
3.3.10动态内存管理/70
3.4结构体、共用体和枚举/71
3.4.1结构体/71
3.4.2位域/72
3.4.3共用体/73
3.4.4枚举/74
3.5零长数组、变长数组和动态数组/75
3.6编码风格与缩进工具indent/77
3.7习题/79
第4章编译与调试/82
4.1gcc、make、Makefile、cmake和CMakeLists.txt/82
4.1.1gcc/82
4.1.2make和Makefile/84
4.1.3cmake和CMakeLists.txt/90
4.2完整的编译过程/90
4.3调试程序/92
4.3.1调试(Debug)和GDB/92
4.3.2测试用例/93
4.3.3GDB启动程序/93
4.3.4断点/94
4.3.5观察点/95
4.3.6捕捉点/96
4.3.7信号/96
4.3.8单步调试/97
4.3.9打印输出/97
4.3.10函数栈帧/99
4.3.11TUI窗口/100
4.3.12函数跳转/101
4.3.13段错误/101
4.3.14coredump/101
4.3.15调试正在运行的程序/102
4.3.16调试多进程和多线程/103
4.3.17gdb使用示例/105
4.4习题/105
第5章链表/107
5.1单向链表/107
5.1.1单链表结构与链表结点类型/107
5.1.2创建单链表/108
5.1.3插入结点/109
5.1.4删除结点/109
5.1.5读取结点/110
5.1.6查找结点/110
5.1.7打印单链表/110
5.1.8逆转单链表/111
5.1.9构建单向循环链表/111
5.1.10销毁单链表/112
5.1.11主函数及测试结果/112
5.2双向链表/113
5.2.1双链表结构与链表结点类型/113
5.2.2创建双链表/113
5.2.3插入结点/115
5.2.4删除结点/115
5.2.5读取结点/116
5.2.6查找结点/116
5.2.7打印双链表/116
5.2.8逆转双链表/117
5.2.9构建双向循环链表/117
5.2.10销毁双向循环链表/118
5.2.11主函数及测试结果/118
5.3内核链表/119
5.3.1list_head/119
5.3.2offsetof、container_of和list_entry/120
5.3.3链表初始化/120
5.3.4插入结点/121
5.3.5删除结点/121
5.3.6替换结点/122
5.3.7移动结点/122
5.3.8判断函数/123
5.3.9合并结点/123
5.3.10遍历链表/124
5.3.11用户空间使用内核链表/124
5.4习题/125
温馨提示:请使用泸西县图书馆的读者帐号和密码进行登录