c指针编程之道 --- 目录

第1章 C语言指针	1
	1.1 C语言的灵魂	1
		1.1.1 从这里开始	1
		1.1.2 知识提示	1
	1.2 相逢在C语言	1
		1.2.1 初识指针——指针变量的定义	1
		1.2.2 学以致用——指针变量的引用	3
		1.2.3 知识提示	4
	1.3 走近指针的日子	4
		1.3.1 方圆世界——指针运算符	4
		1.3.2 玩转指针——指针操作	5
		1.3.3 知识提示	8
第2章 指针在数组中的应用	9
	2.1 由内及外——数组在内存中的样子	9
		2.1.1 物以类聚——数组	9
		2.1.2 数组在内存中的样子	9
		2.1.3 知识提示	10
	2.2 自从有了你	11
		2.2.1 数组的左膀——下标	11
		2.2.2 数组的右臂——指针	11
		2.2.3 知识提示	12
	2.3 数组,不止一面	12
		2.3.1 引蛇出洞——数组指针的定义	12
		2.3.2 数组指针的引用	15
		2.3.3 知识提示	18
	2.4 数组元素那点事	19
		2.4.1 这是直观的世界——数组的下标表示法	19
		2.4.2 数组的另一面——数组的指针表示法	23
		2.4.3 异曲同工——数组的下标与指针	27
		2.4.4 知识提示	30
	2.5 指针集中营——指针数组	30
		2.5.1 戏说指针数组	30
		2.5.2 深度对话——指针数组的引用	31
		2.5.3 知识提示	34
	2.6 聚焦字符串的指针	34
		2.6.1 字符串指针的定义	35
		2.6.2 字符串指针的引用	35
		2.6.3 知识提示	40
第3章 指针在函数中的应用	41
	3.1 的传递	41
		3.1.1 指针新用途——指针用做函数参数	41
		3.1.2 说来说去——普通参数与指针参数	49
		3.1.3 知识提示	50
	3.2 函数也有指针	50
		3.2.1 何谓函数的指针	50
		3.2.2 指点江山——指向函数的指针变量	50
		3.2.3 翻来覆去——函数指针与指针函数	53
		3.2.4 知识提示	54
	3.3 我要的是指针,不是寂寞	54
		3.3.1 函数的返回值	54
		3.3.2 这个函数很奇怪——返回指针类型的函数	54
		3.3.3 main函数的返回值	55
		3.3.4 知识提示	57
第4章 指向指针的指针	58
	4.1 渐行渐进——多维数组	58
		4.1.1 多维数组的定义	58
		4.1.2 指针的指针	64
		4.1.3 当指针遇上多维数组	67
		4.1.4 知识提示	69
	4.2 不能不说的秘密——main函数的秘密	69
		4.2.1 main函数也是函数	69
		4.2.2 野百合也有春天——main函数的参数	70
		4.2.3 知识提示	71
第5章 数据结构中指针的应用	72
	5.1 程序蜗居——内存	72
		5.1.1 铁打的营盘流水的兵——动态内存分配	73
		5.1.2 可持续发展——内存的释放	74
		5.1.3 知识提示	74
	5.2 再说队列	74
		5.2.1 有头有尾的队列	75
		5.2.2 无头无尾的循环队列	77
		5.2.3 链式队列	81
		5.2.4 知识提示	83
	5.3 永恒的话题——堆栈	83
		5.3.1 特殊线性表之堆栈	84
		5.3.2 堆栈的存储结构	84
		5.3.3 知识提示	89
	5.4 顺藤摸瓜——链表	89
		5.4.1 链表种种	89
		5.4.2 寻根问祖——链表的建立	91
		5.4.3 链表的操作	95
		5.4.4 知识提示	100
	5.5 C世界的树	100
		5.5.1 C世界的树是这样的	101
		5.5.2 “丫”形的二叉树	102
		5.5.3 今天,你“栽树”了吗——二叉树的创建	106
		5.5.4 一个也不能少——二叉树的遍历	107
		5.5.5 知识提示	112
第6章 指向文件类型的指针	113
	6.1 动与静——流和文件	113
		6.1.1 流动的“流”	113
		6.1.2 静悄悄的玫瑰——文件	114
		6.1.3 不得不说——文件类型指针	114
		6.1.4 知识提示	115
	6.2 进进出出的I/O	115
		6.2.1 getchar	116
		6.2.2 gets	116
		6.2.3 scanf	117
		6.2.4 putchar	120
		6.2.5 puts	120
		6.2.6 printf	121
		6.2.7 知识提示	125
	6.3 文件加工厂	125
		6.3.1 fopen	126
		6.3.2 fclose	127
		6.3.3 fgetc	127
		6.3.4 fputc	127
		6.3.5 fgets	128
		6.3.6 fputs	129
		6.3.7 fread	130
		6.3.8 fwrite	130
		6.3.9 fprintf	133
		6.3.10 fscanf	133
		6.3.11 fseek	133
		6.3.12 rewind	134
		6.3.13 ftell	134
		6.3.14 feof	135
		6.3.15 知识提示	135
	6.4 学以致用	135
第7章 指针在C语言算法中的应用	142
	7.1 排序杂谈	142
		7.1.1 “7”上“8”下——冒泡排序	144
		7.1.2 高效快捷——排序	150
		7.1.3 各回各家——直接选择排序	153
		7.1.4 心随我动——直接插入排序	155
		7.1.5 好风凭借力——希尔排序	157
		7.1.6 树形结合——堆排序	160
		7.1.7 分久必合——归并排序	165
		7.1.8 排序方法总结	168
		7.1.9 知识提示	169
	7.2 查找	169
		7.2.1 地毯式搜索——顺序查找	170
		7.2.2 ——折半查找	173
		7.2.3 集中粉碎——分块查找	177
		7.2.4 知识提示	179
第8章 典型迷宫算法实例	180
	8.1 迷宫问题	180
		8.1.1 C语言的梦幻家园——迷宫	182
		8.1.2 知识提示	184
	8.2 算法解析	184
		8.2.1 摸着石头过河——回溯法	184
		8.2.2 用回溯法解迷宫问题	189
		8.2.3 原来迷宫可以这样走	197
		8.2.4 知识提示	200
	8.3 指针的应用	200
		8.3.1 “迷宫”里的指针	200
		8.3.2 知识提示	207
第9章 C语言和汇编语言的接口	208
	9.1 不可或缺的保护者——const和volatile	208
		9.1.1 忠诚的卫士——const	208
		9.1.2 不能没有你——volatile	210
		9.1.3 知识提示	211
	9.2 寄存器变量——register	211
		9.2.1 直接的访问者——register	211
		9.2.2 知识提示	212
	9.3 寄存器的方方面面	212
		9.3.1 纵观寄存器	212
		9.3.2 寄存器的方方面面	214
		9.3.3 寄存器操作——因“寄存器”而异	218
		9.3.4 知识提示	221
	9.4 C语言与汇编语言混合编程简介	221
		9.4.1 混编方法	222
		9.4.2 汇编语言与C语言混编的几点说明	222
		9.4.3 知识提示	224
	9.5 C语言调用汇编语言	224
		9.5.1 融为一体——嵌套汇编代码	224
		9.5.2 严丝缝合——调用汇编子程序	226
		9.5.3 知识提示	229
	9.6 汇编语言调用C语言	229
		9.6.1 汇编语言主程序调用C语言子程序	229
		9.6.2 应用举例	230
		9.6.3 知识提示	232
第10章 Linux C编程技术简介	233
	10.1 Linux系统程序设计基础	233
		10.1.1 揭开那神秘的面纱——个Linux C程序	233
		10.1.2 得力的助手——gcc	234
		10.1.3 纠错高手——gdb调试器	235
		10.1.4 强力黏合剂——makefile	239
		10.1.5 知识提示	242
	10.2 Linux下的进程控制和进程间通信	242
		10.2.1 Linux进程简介	242
		10.2.2 Linux进程相关函数	244
		10.2.3 Linux进程间通信	254
		10.2.4 知识提示	263
	10.3 Linux下的线程控制	263
		10.3.1 Linux线程的概念	264
		10.3.2 Linux线程的标识	265
		10.3.3 Linux线程的创建	265
		10.3.4 Linux线程的终止	268
		10.3.5 Linux线程的同步	270
		10.3.6 知识提示	270
	10.4 Linux网络编程技术简介	270
		10.4.1 TCP/IP协议简介	271
		10.4.2 套接字编程简介	273
		10.4.3 基本TCP套接字编程简介	280
		10.4.4 基本UDP套接字编程简介	287
		10.4.5 知识提示	292
第11章 Linux进程与线程通信实例	293
	11.1 生产者—消费者问题简介	293
	11.2 用fork实现简单的生产者—消费者功能	294
	11.3 用fork实现较复杂的生产者—消费者功能	296
	11.4 用clone实现生产者—消费者的功能	302
		11.4.1 互斥量	303
		11.4.2 信号量	304
		11.4.3 clone系统调用	305
		11.4.4 用clone、信号量、互斥量实现生产者—消费者功能	305
		11.4.5 知识提示	313
	11.5 用pthread_create实现生产者—消费者的功能	313
	11.6 画龙点睛——fork、clone、pthread_create 的综合比较	317
第12章 C语言管理系统设计案例	320
	12.1 员工信息管理系统	320
		12.1.1 系统的功能描述	320
		12.1.2 系统的总体设计	320
		12.1.3 详细设计	321
		12.1.4 知识提示	333
	12.2 停车场管理系统	333
		12.2.1 系统的功能描述	333
		12.2.2 系统的总体设计	333
		12.2.3 系统的详细设计	334
		12.2.4 知识提示	348
第13章 C语言游戏设计案例	349
	13.1 猜字游戏	349
		13.1.1 游戏说明	349
		13.1.2 总体设计	350
		13.1.3 详细设计	351
		13.1.4 知识提示	369
	13.2 扑克游戏	369
		13.2.1 游戏说明	369
		13.2.2 总体设计	370
		13.2.3 详细设计	371
		13.2.4 知识提示	394

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值