C语言兼具高级语言和汇编语言的特点,学习起来难度较大,令不少初学者望而生畏。同时,C语言又是一门应用非常广泛的编程语言,在实际应用中如何根据不同的应用场景高效地使用C语言,也是大家非常感兴趣的话题。《C语言点滴》精心选取C语言一些必备知识,这也是初学者容易搞不清楚、犯错误的知识点,进行深入地分析和介绍,以期帮助读者清除C语言学习之路上的“绊脚石”,降低初学入门的难度,培养继续深入的兴趣。全书共14章。第1章覆盖了C语言学习和程序员职业生涯的入门话题,轻松诙谐,堪称“餐前开胃小菜”。第2章介绍了编写程序所需的基础知识。第3章到第13章,分别针对C语言的要点和难点进行深入细致的剖析和探讨,涉及数据类型、表达式和运算符、输入输出、控制结构、函数、库函数、数组、指针、结构体、文件、错误与调试等内容。第14章探讨了程序效率和编程习惯等话题,并且为读者继续学习C语言指明了方向。《C语言点滴》作者有教授C语言课程的背景,其深入浅出、轻松幽默、娓娓道来的讲课风格,在《C语言点滴》中也得到充分体现。读者在阅读时往往会会心一笑,在不知不觉中收获知识和感悟。通过阅读《C语言点滴》,读者可以掌握C语言编程的核心知识点和必备技能,也可以巩固基础、拓展视野,为程序员的职业生涯铺路搭桥。《C语言点滴》适合作为C语言初学者和程序员的入门读物和自学教程,也可作为高等院校计算机相关专业学生的参考读物。
目 录
第1章 程序猿 && 程序媛 1
1.1 装备篇 1
1.1.1 衣着 1
1.1.2 键盘和鼠标 2
1.1.3 电脑 4
1.2 程序猿和互联网 6
1.2.1 搜索引擎 6
1.2.2 通信 9
1.2.3 社交 12
1.2.4 论坛与博客 14
1.2.5 夺宝奇兵 17
1.2.6 互联网精神 19
1.3 熬夜指南 20
1.4 程序=数据结构+算法 22
1.4.1 数据结构 23
1.4.2 算法 24
1.5 内功修炼 28
1.5.1 数学 28
1.5.2 软件工程 31
第2章 编程基础知识 33
2.1 编程语言 33
2.1.1 C语言的昨天 34
2.1.2 C语言的今天 35
2.2 如何学好C语言 38
2.3 开发平台 40
2.4 开发工具 42
2.4.1 集成开发工具 42
2.4.2 文档生成工具 45
2.4.3 版本控制工具 47
2.4.4 推荐开发流程 49
2.5 编程风格 50
2.5.1 变量名 51
2.5.2 缩进和大括号匹配 52
2.5.3 函数的长度和分布 53
2.5.4 编程字体 54
2.5.5 风格和重构 55
第3章 数据类型 58
3.1 原码、反码和补码的解释 58
3.2 整型数的溢出 62
3.3 溢出深入分析 64
3.3.1 溢出的定义 64
3.3.2 溢出的边界 65
3.3.3 溢出的危害 66
3.3.4 避免溢出的方法 66
3.4 无符号数 67
3.5 int和char的关系 70
3.5.1 char就是short short 70
3.5.2 char的符号 71
3.6 浮点数的有效位 72
3.7 判断两个浮点数相等 75
3.8 常量与常量后缀 76
3.9 sizeof运算符 77
3.9.1 sizeof返回值 77
3.9.2 sizeof的用处 77
3.9.3 sizeof(指针)和sizeof(数组)的区别 78
3.10 本章小结 79
第4章 表达式和运算符 81
4.1 自增(减)运算符 81
4.2 左值和右值 83
4.3 布尔值 84
4.4 数据类型转换 85
4.5 写表达式的注意事项 88
4.5.1 用括号来确定运算优先级 88
4.5.2 避免运算顺序问题 89
4.6 有趣的模运算% 90
4.6.1 模运算的基本知识和用法 90
4.6.2 模运算和哈希(Hash)结构 91
4.7 位运算 94
4.8 本章小结 96
第5章 输入输出 97
5.1 流 97
5.2 stdin、stdout、stderr 99
5.3 单个字符输入输出 100
5.3.1 字符输入输出函数 101
5.3.2 getch函数 103
5.4 字符串输入输出 104
5.5 格式化输入输出 105
5.5.1 scanf函数的基本知识 105
5.5.2 scanf函数的输入特点 107
5.5.3 scanf函数处理字符、数字和字符串 109
5.5.4 scanf函数注意事项 111
5.5.5 scanf函数总结 114
5.5.6 格式化输出printf函数 116
5.5.7 选择合适的格式控制符 117
5.6 输入规则全真七子 118
5.7 字符串的安全输入方法 119
5.8 本章小结 121
第6章 控制结构 122
6.1 控制结构常见错误 122
6.2 语句块 124
6.3 for循环 125
6.4 结构化编程及goto语句 127
6.5 假死现象 129
6.6 本章小结 130
第7章 函数、模块和宏定义 132
7.1 预处理指令 132
7.1.1 文件包含 132
7.1.2 条件编译 133
7.1.3 宏替换 134
7.2 main函数 135
7.3 命令行解析 138
7.4 static和const 139
7.5 编译和链接 142
7.6 声明和定义 144
7.7 头文件 145
7.8 头文件的重复包含 147
7.9 多文件项目 150
7.10 C和C++语言混合项目 152
7.11 本章小结 154
第8章 库函数 155
8.1 数学相关 156
8.2 字符串相关 156
8.3 字符和数字相互转换 159
8.4 时间函数 160
8.5 随机数探讨 162
8.6 系统相关函数 165
8.7 库函数使用建议 166
8.8 本章小结 167
第9章 数组 169
9.1 数组的基本知识 169
9.2 数组初始化和数组之间赋值 170
9.3 数组与函数 171
9.4 数组越界 172
9.5 debug和release的区别 173
9.6 二维数组 174
9.6.1 二维数组的定义和初始化 175
9.6.2 二维数组的访问 176
9.7 本章小结 177
第10章 指针 178
10.1 指针的基本知识和定义 179
10.2 指针类型和指针指向的类型 181
10.3 指针定义中常见的错误 183
10.3.1 野指针 183
10.3.2 指针赋值原则 184
10.4 void和NULL 185
10.4.1 void 185
10.4.2 NULL 187
10.5 指针和数组的关系初探 188
10.6 指针与数组关系的再探 192
10.6.1 四个概念的联系 193
10.6.2 指针型指针和指针数组 195
10.6.3 数组指针和二维数组 198
10.7 C语言的内存映像 200
10.8 动态内存分配 202
10.8.1 典型用法 202
10.8.2 malloc函数和calloc函数 203
10.8.3 realloc函数 204
10.8.4 内存释放free 206
10.8.5 内存操作函数 208
10.8.6 内存使用的效率建议 209
10.9 动态数组 210
10.9.1 动态一维数组 210
10.9.2 动态二维数组 211
10.10 字符串 212
10.11 函数和指针 215
10.11.1 用指针类型作为函数形参 215
10.11.2 函数返回指针类型 217
10.12 函数指针 219
10.12.1 函数指针基本知识 219
10.12.2 回调函数 220
10.12.3 函数指针作用的深度思考 222
10.13 复杂声明 227
10.13.1 复杂声明分析 227
10.13.2 返回函数指针的函数 230
10.13.3 复杂声明定义 232
10.13.4 复杂声明用于强制类型转换 233
10.14 本章小结 234
第11章 结构体 236
11.1 自定义数据类型 236
11.2 定义一个结构体变量的三种方法 237
11.3 结构体中的“洞” 239
11.4 结构体的赋值和比较 240
11.5 结构体的读写 242
11.6 函数与结构体 243
11.7 枚举 244
11.8 本章小结 245
第12章 文件 247
12.1 文件基础知识 247
12.1.1 文件指针的解释 247
12.1.2 路径名 248
12.1.3 r+和w+的区别 249
12.2 同时读写 249
12.3 断行标志符 251
12.4 文本格式和二进制格式 254
12.5 文件末尾与feof函数 256
12.5.1 feof函数的基本知识 256
12.5.2 正确使用feof函数 260
12.6 文件读写的错误处理 261
12.7 本章小结 262
第13章 Bug,错误及调试 264
13.1 Bug、错误(error)及异常(exception) 265
13.1.1 三个概念的区别 265
13.1.2 Debug和错误处理 266
13.2 Bug以及Debug 267
13.2.1 Bug的分类 267
13.2.2 bug的避免及发现 269
13.2.3 常见的Debug的工具和方法 274
13.2.4 程序员和bug 276
13.3 C语言中的错误处理机制 278
13.3.1 错误的检测 278
13.3.2 错误的处理方法 280
13.4 面向对象语言中的异常处理机制 281
13.4.1 返回值返回错误的缺点 281
13.4.2 异常处理简介 283
13.4.3 异常处理一般策略 285
13.5 本章小结 287
第14章 进阶之路 289
14.1 程序的效率 289
14.2 C语言的使用原则 291
14.3 加深对C语言的理解 292
14.4 C,C++以及C#(java) 294
14.5 我们现在在哪里? 296
14.6 计算机领域的继续学习 298
参考文献 301
Oneoftheseminaltextsofgraphicdesign,PaulRandsThoughtsonDesignisnowbackinprintfor...
《用“芯”探核:龙芯派开发实战》内容简介:这是一本带领读者快速熟悉、掌握龙芯派开发的专著。本书基于龙芯派二代开发板,首先由
《自由人》内容简介:自由无价。而现在,互联网给我们带来了真正的自由。淘宝给了谁自由?由大学生、家庭主妇、城市无业者、农民们
《15天学会JavaScript(视频教学版)》内容简介:本书从技术和实际应用场景相结合的角度出发,结合当下热门技术(JavaScript、ECMA
VB-MAPP语言行为里程碑评估及安置程序-(全2册) 本书特色 这套《语言行为里程碑及安置程序》为教育人员和家长对孤独症和其他发展性障碍孩子的学习、语言和社会...
“如果你想学习如何用一款统计专家和数据挖掘专家所开发的免费软件包,那就选这本书吧。本书包括大量实际案例,它们充分体现了R软
《SQL反模式》是一本广受好评的SQL图书。它介绍了如何避免在SQL的使用和开发中陷入一些常见却经常被忽略的误区。它通过讲述各种具
《中国圣书:悦读《论语》》内容简介:《论语》是一部记录孔子及其弟子言行的语录体著作,是儒家学派最重要的经典,大约成书于战国
《创新思维与方法》内容简介:本书共12章,包括创新的基础知识、创新驱动发展、互联网+行动计划、大数据时代的思维变革、发明问题传
《三四越界》内容简介:我所有小说、诗歌和白日梦的出处索隐。近年来屡获小说大奖的青年作家文珍首部散文力作 手绘三十四幅温暖回甘
《爱是万能的调味》内容简介:爱是世间最美的味道,爱是世间万能的调味品。爱是流淌在生命里,妈妈的味道。台湾地区著名的私房菜老
《SRE:Google运维解密》内容简介:大型软件系统生命周期的绝大部分都处于“使用”阶段,而非“设计”或“实现”阶段。那么为什么我
《科技英语翻译实用教程》以句子和词汇为主线展开,并将翻译理论、方法与技巧及相关语法知识融合在其中。全书共分为7章:概论、科
《MATLAB小波分析超级学习手册》内容简介:本书对小波分析在MATLAB中的应用进行了详细的介绍,全书以小波为主题展开叙述,不仅对小
《亨利·雷马克与比较文学关系研究》内容简介:亨利·雷马克是美籍德裔著名比较文学学者,文艺理论家。1961年他发表的《比较文学的
《财经写作》内容简介:本书融入了应用写作“国家级精品资源共享课程 ”建设的探索成果,注重学生写作思维的训练和培养,以“公文正
《现代货币理论在中国》内容简介:本书是一本主要由中国学者撰写的现代货币理论的入门书。书中从应对时代挑战角度解读现代货币理论
《欧洲文明的轨迹》内容简介:本书为朱邦造大使的重要论著,作者潜心研究欧洲多年,从欧洲文明的萌芽古希腊、古罗马时期,到漫长的
本书力求以全新的视野,洞悉无线通信前沿领域的一些新的理论、新的技术和新的产品,让读者在最短的时间内跟踪并掌握目前无线Mesh
啊哈C语言!-逻辑的挑战-(修订版) 本书特色 《啊哈C语言!逻辑的挑战(修订版)》是一本非常有趣的编程启蒙书,《啊哈C语言!逻辑的挑战(修订版)》从中小学生的...