类似推荐
编辑推荐
《嗨翻C语言》适用于C开发人员以及对C语言感兴趣的初学者。
内容简介
《嗨翻C语言》向读者提供了C语言的完整学习体验。全书分为三个部分:第1章到第4章是基础知识,包括基本语法、指针、字符串、小工具与源文件;第5章到第8章为进阶内容,有结构、联合、数据结构、堆、函数指针、动/静态链接;最后四章是高级主题,内容涵盖了系统调用、进程间通信、网络编程和多线程。每部分结束后还有一个有趣的实验,可以提高读者的实际操作能力。此外,书中还包含大量的图片、示例和代码,有助于读者对于知识的理解和把握。
作者简介
作者David Griffiths,12岁时看到一部介绍Seymour Papert工作的纪录片,从此踏上编程之路。15岁那年实现了Papert的LOGO编程语言。大学专业是理论数学,毕业后开始编程,并成为一名专栏作家。现在有三个头衔:敏捷教练、程序员和车库管理员。
章节目录
版权信息
版权声明
O'Reilly Media, Inc.介绍
献辞
对Head First丛书的赞誉
对本书的赞誉
《嗨翻C语言》的作者
译者序
其他图书
目录(完整版)
引子
1 C语言入门
2 存储器和指针
2.5 字符串
3 创建小工具
4 使用多个源文件
C语言实验室 1
5 结构、联合与位字段
6 数据结构与动态存储
7 高级函数
8 静态库与动态库
C语言实验室 2
9 进程与系统调用
10 进程间通信
11 网络与套接字
12 线程
C 语言实验室 3
i 饭后甜点
ii话题汇总
引子
本书为谁而写
我们知道你在想什么
元认知:思考的思考
驯服你的大脑
用户须知
技术审校团队
致谢
1 C语言入门:进入C语言的世界
C语言用来创建空间小、速度快的程序
完整的C程序长啥样?
如何运行程序?
两类命令
到目前为止的代码
用C语言算牌?
布尔运算
现在的代码
随时转向的命运列车
有时一次还不够……
所有循环的结构都相同……
用break语句退出循环……
C语言工具箱
2 存储器和指针:指向何方
C代码包含指针
深入挖掘存储器
和指针起航
试着传递指向变量的指针
使用存储器指针
怎么把字符串传给函数?
数组变量好比指针……
运行代码时,计算机在想什么
数组变量与指针又不完全相同
为什么数组从0开始
为什么指针有类型
用指针输入数据
使用scanf()时要小心
除了scanf()还可以用fgets()
字符串字面值不能更新
如果想修改字符串,就复制它
把存储器保存在大脑里
C语言工具箱
2.5 字符串:字符串原理
不顾一切找Frank
创建数组的数组
找到包含搜索文本的字符串
使用strstr()函数
该审查代码了
“数组的数组”和“指针的数组”
C语言工具箱
3 创建小工具:做一件事并把它做好
小工具可以解决大问题
程序如何工作
但没有使用文件……
可以用重定向
隆重推出标准错误
默认情况下,标准错误会发送到显示器
fprintf()打印到数据流
用fprintf()修改代码吧
灵活的小工具
切莫修改geo2json工具
一个任务对应一个工具
用管道连接输入与输出
bermuda工具
输出多个文件
创建自己的数据流
main()可以做得更多
由库代劳
C语言工具箱
4 使用多个源文件:分而治之
简明数据类型指南
勿以小杯盛大物
使用类型转换把float值存进整型变量
不好啦,兼职演员来了……
代码到底怎么了
编译器不喜欢惊喜
声明与定义分离
创建第一个头文件
如果有共同特性……
把代码分成多个文件
编译的幕后花絮
共享代码需要自己的头文件
又不是造火箭……还真是!
不要重新编译所有文件
首先,把源代码编译为目标文件
记不住修改了哪些文件
用make工具自动化构建
make是如何工作的
用makefile向make描述代码
火箭升空!
C语言工具箱
C语言实验室1:Arduino
5 结构、联合与位字段:创建自己的结构
有时要传很多数据
窃窃私语
用结构创建结构化数据类型
只要把“鱼”给函数就行了
使用“.”运算符读取结构字段
结构中的结构
如何更新结构
代码克隆了乌龟
你需要结构指针
(*t).age和*t.age
同一类事物,不同数据类型
联合可以有效使用存储器空间
如何使用联合
枚举变量保存符号
有时你想控制某一位
位字段的位数可调
C语言工具箱
6 数据结构与动态存储:牵线搭桥
保存可变数量的数据
链表就是一连串的数据
在链表中插入数据
创建递归结构
用C语言创建岛屿……
在链表中插入值
用堆进行动态存储
有用有还
用malloc()申请存储器……
用strdup()修复代码
用完后释放存储器
最高机密
SPIES系统综述
软件取证:使用valgrind
反复使用valgrind,收集更多证据
推敲证据
最终审判
C语言工具箱
7 高级函数:发挥函数的极限
寻找真命天子……
把代码传给函数
把函数名告诉find()
函数名是指向函数的指针……
……没有函数类型
如何创建函数指针
用C标准库排序
用函数指针设置顺序
分手信自动生成器
创建函数指针数组
让函数能伸能缩
C语言工具箱
8 静态库与动态库:热插拔代码
值得信赖的代码
尖括号代表标准头文件
如何共享代码?
共享.h头文件
用完整路径名共享.o目标文件
存档中包含多个.o文件
用ar命令创建存档
最后编译其他程序
Head First健身房全球化战略
计算卡路里
事情可没那么简单……
程序由碎片组成……
在运行时动态链接
.a能在运行时链接吗?
首先,创建目标文件
一种平台一个叫法
C语言工具箱
C语言实验室2:OpenCV
9 进程与系统调用:打破疆界
操作系统热线电话
黑客入侵了……
岂止是安全问题
exec()给你更多控制权
exec()函数有很多
数组函数:execv()、execvp()、execve()
传递环境变量
大多数系统调用以相同方式出错
用RSS读新闻
exec()是程序中最后一行代码
用fork()+exec()运行子进程
C语言工具箱
10 进程间通信:沟通的艺术
输入输出重定向
进程内部一瞥
重定向即替换数据流
fileno()返回描述符号
有时需要等待……
家书抵万金
用管道连接进程
案例研究:在浏览器中打开新闻
子进程
父进程
在浏览器中打开网页
进程之死
捕捉信号然后运行自己的代码
用sigaction()来注册sigaction
使用信号处理器
用kill发送信号
打电话叫程序起床
C语言工具箱
11 网络与套接字:金窝,银窝,不如127.0.0.1的草窝
互联网knock-knock服务器
knock-knock服务器概述
BLAB:服务器连接网络四部曲
套接字不是传统意义上的数据流
服务器有时不能正常启动
妈妈说要检查错误
从客户端读取数据
一次只能服务一个人
为每个客户端fork()一个子进程
自己动手写网络客户端
主动权在客户端手中
创建IP地址套接字
getaddrinfo()获取域名的地址
C语言工具箱
12 线程:平行世界
任务是串行的……还是……
……进程不是唯一答案
普通进程一次只做一件事
多雇几名员工:使用线程
如何创建线程?
用pthread_create创建线程
线程不安全
增设红绿灯
用互斥锁来管理交通
C语言工具箱
C语言实验室3:爆破彗星
i 饭后甜点:十大遗漏知识点
1.运算符
2.预处理指令
3.static关键字
4.数据类型的大小
5.自动化测试
6.再谈gcc
7.再谈make
8.开发工具
9.创建GUI
10.参考资料
ii 话题汇总:总复习
嗨翻C语言是2013年由人民邮电出版社出版,作者[美]DavidGriffiths。
得书感谢您对《嗨翻C语言》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。