• 零基础入门学习C语言:带你学C带你飞(微课视频版) 小甲鱼 清华大学出版社有限公司
  • 零基础入门学习C语言:带你学C带你飞(微课视频版) 小甲鱼 清华大学出版社有限公司
  • 零基础入门学习C语言:带你学C带你飞(微课视频版) 小甲鱼 清华大学出版社有限公司
  • 零基础入门学习C语言:带你学C带你飞(微课视频版) 小甲鱼 清华大学出版社有限公司
21年品牌 40万+商家 超1.5亿件商品

零基础入门学习C语言:带你学C带你飞(微课视频版) 小甲鱼 清华大学出版社有限公司

正版二手书,发货前杀菌消毒,保证符合品相,不缺页,圆通发货(圆通不到走邮政),下单后24小时内发货。

18.59 2.4折 79 九品

仅1件

天津宝坻
认证卖家担保交易快速发货售后保障

作者小甲鱼

出版社清华大学出版社有限公司

ISBN9787302505945

出版时间2019-05

装帧平装

开本16开

定价79元

货号1157821621277933578

上书时间2024-12-22

启灵正版书店

已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:九品
商品描述
前言
为什么要学习C语言 

众所周知,C语言是最古老的几门编程语言之一,它至今仍然服务于现代社会。我们来看一下TIOBE排行榜近几年的数据(见图0-1),TIOBE排行榜是根据互联网上有经验的程序员、学校课程和第三方厂商提供的数据,并使用搜索引擎(如Google、Bing、Yahoo!、百度)以及Wikipedia、Amazon、YouTube统计出的排名数据,因此可以准确地反映出某个编程语言的热门程度。

 

从图0-1中可以看到,C语言虽然古老,但却是“老当益壮”,近几年仍然常年位居前列。C语言既没有Java语言的跨平台能力,又没有“新潮”的面向对象的编程思想,也没有垃圾回收机制……由于C语言的数组没有做边界检查,导致了缓冲 区溢出攻击的盛行。尽管如此,仍然有那么多程序员“钟情”于C语言,这是为什么呢?

 

C语言是伴随着UNIX操作系统的兴起而流行的,其语义简明清晰,功能强大而不臃肿,简洁而又不过分简单,实在是工作、学习必备之“良友”。

 

C语言也是一个比较少见的应用领域极为广泛的语言。无论是Windows操作系统的API,还是Linux操作系统的API,或者是想给Ruby、Python编写扩展模块,C语言形式的函数定义都几乎是唯一的选择。C语言就好像一个中间层或者是“胶水”,如果想把不同编程语言实现的功能模块混合使用,C语言是最佳的选择。

 

C语言还可以编写服务器端软件,如当前流行的Apache和Nginx都是使用C语言编写的;在界面开发层面,C语言也颇有建树,如大名鼎鼎的GTK+就是使用C语言开发出来的;由于C语言是一种“接近底层”的编程语言,因此也自然成为了嵌入式系统开发的最佳选择。

 

除此之外,大多数编程语言自身的第一个版本也是通过C语言实现的,借助C程序“一次编写,处处编译”的特性,最大地保证了这些程序语言的可移植性。

关于本书 

本书适合入门学习C语言的读者,也适用于对编程一无所知,但渴望用编程改变世界的朋友。

 

概念是死的,靠读、背、记的方法确实可以通过老师的测验,但却很难实现举一反三,将所学知识应用到现实开发中。因此,本书提倡“理解为主,应用为王”。只要有可能,小甲鱼(作者,下同)就会想方设法地列举一些有趣的例子,让读者在实践中理解概念。

 

本书从变量、数据类型、取值范围等基本知识开始讲解,再深入介绍两大重要的结构——分支与循环,讲到全书的重点——指针的时候,分散难点,依次讲解数组与指针、函数与指针、结构体与指针,每个知识点结合恰当的实例进行演示,环环相扣,内容详尽。

 

目前多数C语言教材基于的是Windows操作系统,采用的编译器(Visual C++ 6.0)其实早已被淘汰,所以本书的演示环境选择更适合C语言的Linux操作系统(CentOS),带读者学习“大神们”都在使用的GCC编译器,并确保所有代码均符合C99标准。

 

编程知识深似海,小甲鱼没办法仅通过一本书将所有的知识都灌输给读者,但能够做到的是培养读者对编程的兴趣,提高编写代码的水平,锻炼自学的能力。

 

最后,本书贯彻的核心理念是:实用、好玩、参与。

 

创作一本图书是非常艰苦的,除了技术知识等因素之外,还需要非常大的毅力。特别感谢清华大学出版社的魏江江主任和刘星编辑,在近一年的时间里,是你们一次次在我遇到困难的时候给予鼓励,让我可以坚持写下去,最后完成这一部作品。

 

感谢不二如是、康小泡和风介等鱼C论坛的诸位版主,因为你们夜以继日地守护着我们的论坛,积极地为用户解答问题,鱼C论坛才有今天如火如荼的学习氛围。

 

最后,需要特别感谢一下我的妻子,是你一直在身边照顾我、支持我,我才能把大量的时间投入到本书的写作之中。谨以此书献给你,我此生的挚爱!

 

 

 

小甲鱼

 

2019年2月

 


 


 




作者简介

小甲鱼(本名 李佳宇)
鱼C工作室创始人,旗下鱼C论坛,现注册用户50多万,用户累计发表在线求助类帖子近200万,至今已有十余年编程教学工作经验;畅销书《零基础入门学习Python》作者,该书自2016年11月出版以来,广受读者的欢迎和好评,截至2019年3月,已累计印刷13万册。
免费推出《带你学C带你飞》《零基础入门学习Python》《零基础入门学习Web开发(HTML5&CSS3)》《极客Python》《数据结构和算法》《Windows程序设计》《解密系列》等系列视频教程。在网易云课堂、百度传课、51CTO、哔哩哔哩等网站上因通俗易懂“接地气”的教学方式而广受网友好评,多次被首页及相关专题推荐,累计学习人数超过千万。



目录

第1章 初窥门径.

 

1.1 C语言被淘汰了吗... 1

 

1.2 莫尔斯密码... 2

 

1.3 机器语言... 2

 

1.4 汇编语言... 3

 

1.5 C语言... 4

 

1.6 C语言的优势... 5

 

1.7 第一个程序... 6

 

1.8 打印... 7

 

1.9 变量... 11

 

1.10 常量... 14

 

1.10.1 定义符号常量... 14

 

1.10.2 标识符... 15

 

1.10.3 字符串常量... 15

 

1.11 数据类型... 16

 

1.12 sizeof运算符... 17

 

1.13 signed和unsigned. 19

 

1.14 取值范围... 20

 

1.15 字符... 25

 

1.16 字符串... 28

 

1.17 运算符... 30

 

1.17.1 算术运算符... 31

 

1.17.2 目... 31

 

1.17.3 表达式... 32

 

1.17.4 运算符的优先级和结合性... 32

 

1.17.5 类型转换... 34

 

第2章 了不起的分支和循环... 37

 

2.1 分支结构... 37

 

2.1.1 关系运算符... 37

 

2.1.2 关系表达式... 38

 

2.1.3 逻辑运算符... 38

 

2.1.4 逻辑表达式... 39

 

2.1.5 短路求值... 40

 

2.1.6 if语句... 41

 

2.1.7 switch语句... 46

 

2.1.8 分支结构的嵌套... 48

 

2.1.9 悬挂else. 51

 

2.1.10 等于号带来的问题... 53

 

2.2 循环结构... 54

 

2.2.1 while语句... 54

 

2.2.2 do-while语句... 57

 

2.2.3 for语句... 58

 

2.2.4 灵活的for语句... 60

 

2.2.5 循环结构的嵌套... 63

 

2.2.6 break语句... 65

 

2.2.7 continue语句... 68

 

2.3 拾遗... 69

 

2.3.1 赋值运算符... 69

 

2.3.2 复合的赋值运算符... 70

 

2.3.3 自增自减运算符... 70

 

2.3.4 逗号运算符... 71

 

2.3.5 条件运算符... 72

 

2.3.6 goto语句... 73

 

2.3.7 注释... 74

 

第3章 数组... 76

 

3.1 一维数组... 77

 

3.1.1 定义一维数组... 77

 

3.1.2 访问一维数组... 77

 

3.1.3 循环与数组的关系... 78

 

3.1.4 数组的初始化... 79

 

3.1.5 可变长数组... 79

 

3.1.6 字符数组... 80

 

3.2 字符串处理函数... 81

 

3.2.1 获取字符串的长度... 81

 

3.2.2 复制字符串... 82

 

3.2.3 连接字符串... 84

 

3.2.4 比较字符串... 85

 

3.3 二维数组... 86

 

3.3.1 定义二维数组... 86

 

3.3.2 访问二维数组... 87

 

3.3.3 二维数组的初始化... 87

 

第4章 指针... 90

 

4.1 指针和指针变量... 91

 

4.1.1 定义指针变量... 92

 

4.1.2 取地址运算符和取值运算符... 92

 

4.1.3 避免访问未初始化的指针... 94

 

4.2 指针和数组... 94

 

4.2.1 数组的地址... 94

 

4.2.2 指向数组的指针... 96

 

4.2.3 指针的运算... 97

 

4.2.4 指针和数组的区别... 99

 

4.2.5 指针数组和数组指针... 100

 

4.2.6 指针和二维数组... 105

 

4.2.7 数组指针和二维数组... 108

 

4.3 void指针... 109

 

4.4 NULL指针... 112

 

4.5 指向指针的指针... 113

 

4.6 指针数组和指向指针的指针... 114

 

4.7 再讲数组指针和二维数组... 116

 

4.8 常量和指针... 118

 

4.9 指向常量的指针... 119

 

4.10 常量指针... 120

 

4.10.1 指向非常量的常量指针... 120

 

4.10.2 指向常量的常量指针... 121

 

4.10.3 指向“指向常量的常量指针”的指针... 122

 

第5章 函数... 124

 

视频讲解:271分钟(14个)钟

 

5.1 函数的定义和声明... 125

 

5.1.1 热身... 125

 

5.1.2 函数的定义... 126

 

5.1.3 函数的声明... 127

 

5.2 函数的参数和返回值... 128

 

5.2.1 形参和实参... 129

 

5.2.2 传值和传址... 130

 

5.2.3 传数组... 131

 

5.2.4 可变参数... 134

 

5.3 指针函数和函数指针... 135

 

5.3.1 指针函数... 135

 

5.3.2 误区:返回指向局部变量的指针... 136

 

5.3.3 函数指针... 137

 

5.3.4 函数指针作为参数... 138

 

5.3.5 函数指针作为返回值... 139

 

5.4 局部变量和全局变量... 140

 

5.4.1 局部变量... 140

 

5.4.2 全局变量... 142

 

5.4.3 不要大量使用全局变量... 145

 

5.5 作用域和链接属性... 146

 

5.5.1 代码块作用域... 146

 

5.5.2 文件作用域... 147

 

5.5.3 原型作用域... 148

 

5.5.4 函数作用域... 148

 

5.5.5 链接属性... 148

 

5.6 生存期和存储类型... 151

 

5.6.1 生存期... 151

 

5.6.2 存储类型... 152

 

5.7 递归... 156

 

5.7.1 什么是递归... 156

 

5.7.2 递归求阶乘... 159

 

5.7.3 汉诺塔... 162

 

5.7.4 分治法... 165

 

5.7.5 快速排序... 166

 

5.8 动态内存管理... 168

 

5.8.1 malloc. 168

 

5.8.2 free. 169

 

5.8.3 内存泄漏... 170

 

5.8.4 申请任意尺寸的内存空间... 172

 

5.8.5 calloc. 175

 

5.8.6 realloc. 175

 

5.9 C语言的内存布局... 177

 

5.9.1 代码段... 179

 

5.9.2 数据段... 180

 

5.9.3 BSS段... 180

 

5.9.4 堆... 182

 

5.9.5 栈... 182

 

5.10 高级宏定义... 184

 

5.10.1 不带参数的宏定义... 185

 

5.10.2 带参数的宏定义... 186

 

5.11 内联函数... 188

 

5.12 一些鲜为人知的技巧... 190

 

5.12.1 #和##. 190

 

5.12.2 可变参数... 191

 

第6章 结构体... 193

 

视频讲解:205分钟(12个)钟

 

6.1 结构体的声明和定义... 193

 

6.1.1 结构体的声明... 193

 

6.1.2 结构体的定义... 194

 

6.1.3 访问结构体成员... 195

 

6.1.4 初始化结构体... 197

 

6.1.5 对齐... 197

 

6.2 结构体嵌套... 199

 

6.3 结构体数组... 200

 

6.4 结构体指针... 201

 

6.5 传递结构体信息... 203

 

6.5.1 传递结构体变量... 203

 

6.5.2 传递指向结构体变量的指针... 206

 

6.6 动态申请结构体... 207

 

6.7 单链表... 212

 

6.7.1 在单链表中插入元素(头插法)... 214

 

6.7.2 在单链表中插入元素(尾插法)... 216

 

6.7.3 搜索单链表... 218

 

6.7.4 插入节点到指定位置... 219

 

6.7.5 在单链表中删除元素... 223

 

6.8 内存池... 225

 

6.9 typedef 239

 

6.9.1 给数据类型起别名... 239

 

6.9.2 结构体的好搭档... 242

 

6.9.3 进阶typedef 244

 

6.10 共用体... 249

 

6.10.1 共用体的声明... 249

 

6.10.2 共用体的定义... 252

 

6.10.3 初始化共用体... 252

 

6.11 枚举... 253

 

6.12 位域... 256

 

第7章 位操作... 260

 

视频讲解:26分钟(2个)钟

 

7.1 逻辑位运算符... 261

 

7.1.1 按位取反... 262

 

7.1.2 按位与... 262

 

7.1.3 按位异或... 262

 

7.1.4 按位或... 263

 

7.1.5 和赋值号结合... 263

 

7.2 移位运算符... 264

 

7.2.1 左移运算符... 264

 

7.2.2 右移运算符... 265

 

7.2.3 和赋值号结合... 265

 

7.2.4 一些未定义行为... 266

 

7.3 应用... 267

 

7.3.1 掩码... 267

 

7.3.2 打开位... 268

 

7.3.3 关闭位... 268

 

7.3.4 转置位... 269

 

第8章 文件操作... 270

 

视频讲解:108分钟(6个)钟

 

8.1 文件是什么... 270

 

8.2 打开和关闭文件... 271

 

8.3 顺序读写文件... 273

 

8.3.1 读写单个字符... 273

 

8.3.2 读写整个字符串... 274

 

8.3.3 格式化读写文件... 277

 

8.3.4 二进制读写文件... 278

 

8.4 随机读写文件... 281

 

8.5 标准流... 285

 

8.5.1 标准输入、标准输出和标准错误输出... 285

 

8.5.2 重定向... 286

 

8.5.3 错误处理... 287

 

8.6 I/O缓冲区... 291

 

附录A 环境搭建教程... 294

 

A.1 安装VirtualBox虚拟机... 294

 

A.2 获取CentOS及版本选择... 298

 

A.3 在虚拟机上安装CentOS. 300

 

A.4 配置CentOS并安装GCC编译器... 310

 

A.5 安装图形界面... 314

 

A.6 安装中文输入法及设置合适的编程字体... 320

 

A.7 安装VirtualBox增强工具及共享文件夹设置... 326

 

A.8 设置VIM编辑器... 330

 

A.9 Mac OS搭建C语言学习环境... 332

 

附录B VIM快速入门... 334

 

B.1 使用h、j、k、l来移动光标... 334

 

B.2 插入模式和退出VIM的方法... 335

 

B.3 删除命令、数字的魔力、撤销和恢复命令... 336

 

B.4 粘贴/复制命令、替换命令、替换模式和修改命令... 338

 

B.5 文件信息、跳转、定位括号和缩进... 339

 

B.6 搜索命令和替换命令... 341

 

B.7 执行shell命令、文件另存为、合并文件和打开多个文件... 344

 

 

 




内容摘要

本书提倡“理解为主,应用为王”,通过列举一些有趣的例子,让读者在实践中理解概念。本书从变量、数据类型、取值范围等基本知识开始讲解,深入介绍分支与循环,讲到指针的时候,分散难点,依次讲解数组与指针、函数与指针、结构体与指针,每个知识点结合恰当的实例进行演示,环环相扣,内容详尽。
编程知识深似海,小甲鱼没办法仅通过一本书将所有的知识都灌输给读者,但能够做到的是培养读者对编程的兴趣,提高编写代码的水平,锻炼自学的能力。



主编推荐

小甲鱼全新力作,配套61集免费视频教程,让您轻松、快速入门C语言。



精彩内容
随着编写的程序规模不断扩大,编程的人都免不了会面临下面几个问题。
*main函数变得相当冗杂,程序可读性差。
*程序复杂度不断提高,编程变成了头脑风暴。
*代码前后关联度高,修改代码往往牵一发而动全身。
*变量的命名都成了问题(因为简单的名字都用完了,小明、小红、旺财、阿福,为了不重复命名,只能使用小明2号,小红3号……)。
*为了在程序中多次实现某个功能,不得不重复多次写相同的代码。
  这一章开始讲解函数,就是为了解决上面这些问题。
  函数,从本书第一个程序开始就一直在用,在屏幕上打印“HelloWorld”字符串的时候,使用的是printf函数。它是一个标准库函数,是C语言为我们提供的,有了它,就可以在屏幕上输出格式化的内容。C语言的标准库中还提供了很多实现各种功能的函数,有处理字符串的,有数学计算的,有输入输出的,有进程管理的,有信号、接口处理的……  【扩展阅读】为了方便大家平时查阅,小甲鱼做了一个分类和归纳,日常使用可访问http://bbs.fishc.com/thread-70614-1-1.html或扫描图5-1所示二维码进行查阅。

   相关推荐   

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP