您好,欢迎光临有路网!
嗨翻c语言
QQ咨询:
有路璐璐:

嗨翻c语言

  • 作者:[美]David Griffiths Dawn Griffiths
  • 出版社:人民邮电出版社
  • ISBN:9787115318848
  • 出版日期:2013年09月01日
  • 页数:288
  • 定价:¥99.00
  • 猜你也喜欢

    分享领佣金
    手机购买
    城市
    店铺名称
    店主联系方式
    店铺售价
    库存
    店铺得分/总交易量
    发布时间
    操作

    新书比价

    网站名称
    书名
    售价
    优惠
    操作

    图书详情

    内容提要
    《嗨翻c语言》向读者提供了c语言的完整学习体验。全书分为三个部分:第1章到第4章是基础知识,包括基本语法、指针、字符串、小工具与源文件;第5章到第8章为进阶内容,有结构、联合、数据结构、堆、函数指针、动/静态链接;*后四章是**主题,内容涵盖了系统调用、进程间通信、网络编程和多线程。每部分结束后还有一个有趣的实验,可以提高读者的实际操作能力。此外,书中还包含大量的图片、示例和代码,有助于读者对于知识的理解和把握。 《嗨翻c语言》适用于c开发人员以及对c语言感兴趣的初学者。
    文章节选
    想用C代码编写好玩的游戏吗?想成为C代码侦探,去破解重重谜案吗?或是让C代码变成牵线红娘,帮你找到你的梦中情人?哈哈!别着急,David Griffiths和Dawn Griffiths夫妇的这本Head First C将会带你来到这个奇妙的C语言世界:这里没有令人乏味的“学究腔”,没有冗长枯燥的老生常谈,也没有令人望而却步的大堆练习。作者用诙谐、幽默的口吻为你讲述了一个又一个关于C的故事。无论你是C语言学习航程中的新船员,还是经历过大风大浪的老水手,你都能从Head First C中体会到无限乐趣。
    目录
    目 录

    引子
    让大脑重视c语言。现在你正试着学习某些东西,为了不让学习卡壳,你的大脑也在帮你的忙,大脑在想:“*好把空间留给重要的事,比如什么动物是危险的?裸体滑雪是不是一个坏主意?”那么怎么才能欺骗你的大脑,让它认为学好c关系到你下半生的幸福呢?
    本书为谁而写 xxxii
    我们知道你在想什么 xxxiii
    元认知 xxxv
    驯服你的大脑 xxxvii
    用户须知 xxxviii
    技术审校团队 xl
    致谢 xli

    1 进入c语言的世界
    c语言入门 目 录

    引子
    让大脑重视c语言。现在你正试着学习某些东西,为了不让学习卡壳,你的大脑也在帮你的忙,大脑在想:“*好把空间留给重要的事,比如什么动物是危险的?裸体滑雪是不是一个坏主意?”那么怎么才能欺骗你的大脑,让它认为学好c关系到你下半生的幸福呢?
    本书为谁而写 xxxii
    我们知道你在想什么 xxxiii
    元认知 xxxv
    驯服你的大脑 xxxvii
    用户须知 xxxviii
    技术审校团队 xl
    致谢 xli

    1 进入c语言的世界
    c语言入门
    想知道计算机在想什么?
    你需要为一款新游戏编写高性能的代码吗?你需要为arduino编程吗?你需要在iphone应用中使用**的第三方库吗?如果是的话,c语言就可以帮上忙了。相比其他大多数语言,c语言的工作层次更低,因此理解c语言可以让你更清楚程序在运行时到底发生了什么,c语言还可以帮助你更好地理解其他语言。来吧,拿起编译器,很快你就能入门了。
    c语言用来创建空间小、速度快的程序 2
    完整��c程序长啥样? 5
    如何运行程序? 9
    两类命令 14
    到目前为止的代码 15
    用c语言算牌? 17
    布尔运算 18
    现在的代码 25
    随时转向的命运列车 26
    有时一次还不够…… 29
    所有循环的结构都相同…… 30
    用break语句退出循环…… 31
    c语言工具箱 40

    2 存储器和指针
    指向何方?
    如果真的想玩转c语言,就需要理解c语言如何操纵存储器。
    c语言在如何使用存储器方面赋予了你更多的掌控权。在本章中,你将揭开存储器神秘的面纱,看到读写变量时到底发生了什么;学习数组的工作原理,以及怎样避免烦人的存储器错误;*重要的是,你将看到掌握指针和存储器寻址对成为一名地道的c程序员来讲有多么重要。
    c代码包含指针 42
    深入挖掘存储器 43
    和指针起航 44
    试着传递指向变量的指针 47
    使用存储器指针 48
    怎么把字符串传给函数? 53
    数组变量好比指针…… 54
    运行代码时,计算机在想什么 55
    数组变量与指针又不完全相同 59
    为什么数组从0开始 61
    为什么指针有类型 62
    用指针输入数据 65
    使用scanf()时要小心 66
    除了scanf()还可以用fgets() 67
    字符串字面值不能更新 72
    如果想修改字符串,就复制它 74
    把存储器保存在大脑里 80
    c语言工具箱 81

    2.5 字符串
    字符串原理
    字符串不只是用来读取的。
    在c语言中字符串其实就是char数组,这你已经知道了,问题是字符串能用来干嘛?该string.h出场了。string.h是c标准库的一员,它负责处理字符串。如果想要连接、比较或复制字符串,string.h中的函数就可以派上用场了。在本章中,你将学会如何创建字符串数组,并近距离观察如何使用strstr()函数搜索字符串。
    不顾一切找frank 84
    创建数组的数组 85
    找到包含搜索文本的字符串 86
    使用strstr()函数 89
    该审查代码了 94
    “数组的数组”和“指针的数组” 98
    c语言工具箱 101

    3 创建小工具
    做一件事并把它做好
    操作系统都有小工具。
    c语言小工具执行特定的小任务,例如读写文件、过滤数据。如果想要完成更复杂的任务,可以把多个工具链接在一起。那么如何构建小工具呢?本章
    中,你会看到创建小工具的基本要素并学会控制命令行选项、操纵信息流、重定向,并很快建立自己的工具。
    小工具可以解决大问题 104
    程序如何工作 108
    但没有使用文件…… 109
    可以用重定向 110
    隆重推出标准错误 120
    默认情况下,标准错误会发送到显示器 121
    fprintf()打印到数据流 122
    用fprintf()修改代码吧 123
    灵活的小工具 128
    切莫修改geo2json工具 129
    一个任务对应一个工具 130
    用管道连接输入与输出 131
    bermuda工具 132
    输出多个文件 137
    创建自己的数据流 138
    main()可以做得更多 141
    由库代劳 149
    c语言工具箱 156

    4 使用多个源文件
    分而治之
    大程序不等于大源文件。
    你能想象一个企业级的程序如果只有一个源文件,维护起来有多么困难与耗时吗?在本章中,你将学习怎样把源代码分解为易于管理的小模块,然后把它们合成一个大程序,同时还将了解数据类型的更多细节,并结识一个新朋友:make。
    简明数据类型指南 162
    勿以小杯盛大物 163
    使用类型转换把float值存进整型变量 164
    不好啦,兼职演员来了…… 168
    代码到底怎么了 169
    编译器不喜欢惊喜 171
    声明与定义分离 173
    创建**个头文件 174
    如果有共同特性…… 182
    把代码分成多个文件 183
    编译的幕后花絮 184
    共享代码需要自己的头文件 186
    又不是造火箭……还真是! 189
    不要重新编译所有文件 190
    首先,把源代码编译为目标文件 191
    记不住修改了哪些文件 196
    用make工具自动化构建 198
    make是如何工作的 199
    用makefile向make描述代码 200
    火箭升空! 205
    c语言工具箱 206

    5 结构、联合与位字段
    创建自己的结构
    生活**数字复杂多了。
    到目前为止,你只接触过c语言的基本数据类型,但如果想表示数字、文本以外的其他东西呢,或为现实世界中的事物建立模型,怎么办?结构将帮你创建自己的结构,模拟现实世界中错综复杂的事物。在本章中,你将学习如何把基本数据类型组成结构以及用联合处理生活的不确定性。如果你想简单地模拟“是”或“非”,可以用位字段。
    有时要传很多数据 218
    窃窃私语 219
    用结构创建结构化数据类型 220
    只要把“鱼”给函数就行了 221
    使用“.”运算符读取结构字段 222
    结构中的结构 227
    如何更新结构 236
    代码克隆了乌龟 238
    你需要结构指针 239
    (*t).age和*t.age 240
    同一类事物,不同数据类型 246
    联合可以有效使用存储器空间 247
    如何使用联合 248
    枚举变量保存符号 255
    有时你想控制某一位 261
    位字段的位数可调 262
    c语言工具箱 266

    6 数据结构与动态存储
    牵线搭桥
    一个结构根本不够。
    为了模拟复杂的数据需求,通常需要把结构链接在一起。在本章中,你将学习如何用结构指针把自定义数据类型连接成复杂的大型数据结构,将通过创建链表来探索其中的基本原理;同时还将通过在堆上动态地分配空间来学习如何让数据结构处理可变数量的数据,并在完成工作后释放空间;如果你嫌清理工作太麻烦,可以学习一下怎么用valgrind。
    保存可变数量的数据 268
    链表就是一连串的数据 269
    在链表中插入数据 270
    创建递归结构 271
    用c语言创建岛屿…… 272
    在链表中插入值 273
    用堆进行动态存储 278
    有用有还 279
    用malloc()申请存储器…… 280
    用strdup()修复代码 286
    用完后释放存储器 290
    spies系统综述 300
    软件取证:使用valgrind 302
    反复使用valgrind,收集更多证据 303
    推敲证据 304
    *终审判 307
    c语言工具箱 309

    7 **函数
    发挥函数的极限
    基本函数很好用,但有时需要更多功能。
    到目前为止,你只关注了一些基本的东西,为了达成目标,需要更多的功能与灵活性。本章你将学习如何把函数作为参数传递,从而提高代码的智商,
    并学会用比较器函数排序,*后还将学会使用可变参数函数让代码伸缩自如。
    寻找真命天子…… 312
    把代码传给函数 316
    把函数名告诉find() 317
    函数名是指向函数的指针…… 318
    ……没有函数类型 319
    如何创建函数指针 320
    用c标准库排序 325
    用函数指针设置顺序 326
    分手信自动生成器 334
    创建函数指针数组 338
    让函数能伸能缩 343
    c语言工具箱 350

    8 静态库与动态库
    热插拔代码
    你已经见识过标准库的威力。
    是时候在代码中发挥这种威力了。在本章中,你将学会创建自己的库,以及在多个程序中复用相同代码;还将掌握编程大师的秘诀——通过动态库在运行时共享代码;*后你将写出易于扩展并可以有效管理的代码。
    值得信赖的代码 352
    尖括号代表标准头文件 354
    如何共享代码? 355
    共享.h头文件 356
    用完整路径名共享.o目标文件 357
    存档中包含多个.o文件 358
    用ar命令创建存档 359
    *后编译其他程序 360
    head first健身房全球化战略 365
    计算卡路里 366
    事情可没那么简单…… 369
    程序由碎片组成…… 370
    在运行时动态链接 372
    .a能在运行时链接吗? 373
    首先,创建目标文件 374
    一种平台一个叫法 375
    c语言工具箱 387

    9 进程与系统调用
    打破疆界
    打破常规。
    你已经学会了通过在命令行连接小工具的方式建立复杂的程序。但如果你想在代码中使用其他程序怎么办?本章中你将学会如何用系统服务来创建和控
    制进程,让程序发电子邮件、上网和使用任何已经安装过的程序。本章的*后,你将得到超越c语言的力量。
    操作系统热线电话 398
    黑客入侵了…… 402
    岂止是**问题 403
    exec()给你更多控制权 404
    exec()函数有很多 405
    数组函数:execv()、execvp()、execve() 406
    传递环境变量 407
    大多数系统调用以相同方式出错 408
    用rss读新闻 416
    exec()是程序中*后一行代码 420
    用fork()+exec()运行子进程 421
    c语言工具箱 427

    10 进程间通信
    沟通的艺术
    创建进程只是个开始。
    如果你想控制运行中的进程,向进程发送数据或读取它的输出,该怎么办?通过进程间通信,进程可以合力完成某件工作。我们将向你展示如何让程序与系统中其他程序通信,从而提升它的战斗力。
    输入输出重定向 430
    进程内部一瞥 431
    重定向即替换数据流 432
    fileno()返回描述符号 433
    有时需要等待…… 438
    家书抵万金 442
    用管道连接进程 443
    案例研究:在浏览器中打开新闻 444
    子进程 445
    父进程 445
    在浏览器中打开网页 446
    进程之死 451
    捕捉信号然后运行自己的代码 452
    用sigaction()来注册sigaction 453
    使用信号处理器 454
    用kill发送信号 457
    打电话叫程序起床 458
    c语言工具箱 466

    11 网络与套接字
    金窝,银窝,不如127.0.0.1的草窝
    不同计算机上的程序需要对话。
    你已经学习了怎么用i/o与文件通信,还学习了如何让同一台计算机上的两个进程通信,现在你将走向世界舞台,让c程序通过互联网和世界各地的其他程序通信。本章的*后你将创建具有服务器和客户端功能的程序。
    互联网knock-knock服务器 468
    knock-knock服务器概述 469
    blab:服务器连接网络四部曲 470
    套接字不是传统意义上的数据流 472
    服务器有时不能正常启动 476
    妈妈说要检查错误 477
    从客户端读取数据 478
    一次只能服务一个人 485
    为每个客户端fork()一个子进程 486
    自己动手写网络客户端 490
    主动权在客户端手中 491
    创建ip地址套接字 492
    getaddrinfo()获取域名的地址 493
    c语言工具箱 500

    12 线程
    平行世界
    程序经常需要同时做几件事。
    posix线程可以派生几段并行执行的代码,从而提高代码的响应速度。但是要小心!线程虽然很强大,但它们之间可能发生冲突。本章你将学习如何用红绿灯来防止代码发生车祸。*终你将学会创建posix线程,并使用同步机制来保护共享数据的**。
    任务是串行的……还是…… 502
    ……进程不是**答案 503
    普通进程一次只做一件事 504
    多雇几名员工:使用线程 505
    如何创建线程? 506
    用pthread_create创建线程 507
    线程不** 512
    增设红绿灯 513
    用互斥锁来管理交通 514
    c 语言工具箱 521

    i 饭后甜点
    十大遗漏知识点
    革命尚未成功,同志还需努力。
    我们认为你还需要知道一些事,如果不讲,总觉得哪里不对劲,但我们又不希望这本书重得只有大力士才提得动,所以我们只做简单介绍。在你放下这本书前,尽情地享用这些“美味佳肴”吧。
    #1. 运算符 540
    #2. 预处理指令 542
    #3. static关键字 543
    #4. 数据类型的大小 544
    #5. 自动化测试 545
    #6. 再谈gcc 546
    #7. 再谈make 548
    #8. 开发工具 550
    #9. 创建gui 551
    #10. 参考资料 552

    ii 话题汇总
    总复习
    将c语言的特性尽收眼底。
    我们把本书中出现过的所有关于c语言的话题和原理都汇总在了这里。把它们过一遍,看你还记得多少。每条话题都标明了来源章节号。如果你想不起来,很容易就能找到原文,甚至还可以把它们剪下来贴在墙上。
    编辑推荐语
    想用c代码编写好玩的游戏吗?想成为c代码侦探,去破解重重谜案吗?或是让c代码变成牵线红娘,帮你找到你的梦中情人?哈哈!别着急,david griffiths和dawn griffiths夫妇的这本head first c将会带你来到这个奇妙的c语言世界:这里没有令人乏味的“学究腔”,没有冗长枯燥的老生常谈,也没有令人望而却步的大堆练习。作者用诙谐、幽默的口吻为你讲述了一个又一个关于c的故事。无论你是c语言学习航程中的新船员,还是经历过大风大浪的老水手,你都能从head first c中体会到无限乐趣。

    与描述相符

    100

    北京 天津 河北 山西 内蒙古 辽宁 吉林 黑龙江 上海 江苏 浙江 安徽 福建 江西 山东 河南 湖北 湖南 广东 广西 海南 重庆 四川 贵州 云南 西藏 陕西 甘肃 青海 宁夏 新疆 台湾 香港 澳门 海外