C语言从初学到精通

副标题:无

作   者:徐志伟,陈曦,王永静等编著

分类号:

ISBN:9787121106392

微信扫一扫,移动浏览光盘

简介

   C语言是一种计算机程序设计语言,它功能强大,可以用来编写系统软   件及应用软件,应用范围很广泛。作为一门计算机编程语言,C语言有自己   的规范,所以对初学者而言概念比较多、不易理解。    本书分为5篇,共23章,循序渐进地从基本概念到具体实践讲述C语言   ,并对具体知识点进行详细的实例讲解。第一部分包括第1~2章,主要讲   述Turbo C的安装、开发环境的介绍,以及如何在Turbo C中调试运行程序   。第二部分包括第3~7章,主要介绍C语言中的基本概念,变量与常量、运   算符与表达式、输入输出函数、C语言三种基本结构。第三部分包括第8~   11章,介绍C语言中的重点与难点,包括数组、函数、指针、结构体与共用   体。第四部分包括第12~20章,介绍数据结构的相关内容,包括栈、队列   、串、树、图,这几部分内容是数据结构的重要组成。第五部分包括第21   ~23章,介绍C语言中文件及编译部分,以及错误调试的内容。    本书的特点是不仅详细介绍了C语言中各个概念,而且在每个知识点后   都配套有实例讲解,详细描述C语言中各个概念的实际应用及注意点,非常   实用,方便读者模拟实践。本书适合没有编程基础的C语言初学者;正在学   习C语言基础或深入了解数据结构的用户也可以阅读;并可作为大、中专院   校师生或培训班教材;对于开发人员,本书也可以作为参考手册。   

目录

第一部分 c语言开发环境篇

第1章 turbo c介绍 24

本章主要介绍了安装turbo c 3.0的步骤、相关设置,以及环境界面中各个菜单的详细介绍。读者在学习本章内容时,尤其是在安装turbo c 3.0时,最好在计算机上跟着介绍的步骤逐步操作,学会安装并且了解整个界面,以及一些菜单的使用等。

1.1 turbo c的配置与安装 24

1.1.1 turbo c简介 24

1.1.2 安装turbo c 3.0 24

1.2 初识turbo c环境界面 27

1.2.1 设置turbo c 27

1.2.2 界面简介 29

1.3 本章小结 32

第2章 初识c程序 33

本章主要介绍了第一个c语言程序,介绍程序的各个组成部分及作用。然后利用turbo c 3.0环境调试这个程序,其中重点讲述了如何保存、调试、检查错误、运行显示结果。另外本章还涉及了一些算法的内容,并介绍了如何应用流程图表示程序。

2.1 第一个c程序 33

2.2 c语言的后缀名 34

2.3 c语言的上机步骤 35

2.3.1 程序运行流程 35

2.3.2 输入源程序 35

2.3.3 运行源程序 36

2.3.4 调试检查错误 36

2.3.5 显示运行结果 37

.2.4 打开光盘中源程序的步骤 37

2.5 算法及表示 38

2.5.1 算法 38

2.5.2 算法的表示 39

2.6 本章小结 42

第二部分 c语言基础知识篇

第3章 变量与常量 44

本章主要介绍c语言中变量、常量,以及数据类型。首先介绍了c语言的基本符号、标识符,这部分是c语言的基础,由此再引入变量,变量的定义及变量的常见数据类型。学会了变量的基本知识,读者就不难理解常量及其数据类型。本章知识结构安排一环扣一环,联系比较紧密,希望读者认真学好每一节,为以后的c语言学习打下坚实的基础。

3.1 c语言的基本语言单位 44

3.1.1 基本符号 44

3.1.2 标识符 45

3.1.3 关键字 46

3.2 变量及变量的数据类型 48

3.2.1 基本概念 48

3.2.2 变量的定义 48

3.2.3 整型变量 49

3.2.4 实型变量 51

3.2.5 字符型变量 52

3.3 常量及常量的数据类型 53

3.3.1 常量的定义 53

3.3.2 整型常量 54

3.3.3 实型常量 54

3.3.4 字符型常量 56

3.3.5 字符串常量 56

3.3.6 符号常量 57

3.3.7 转义字符 58

3.3.8 地址常量 60

3.4 综合示例 61

3.5 本章小结 63

第4章 运算符、表达式和语句 64

本章主要介绍了c语言中的运算符,具体指的是算术运算符、逻辑运算符和关系运算符、逗号运算符、赋值运算符、位运算符、自增自减运算符等,这些知识都是非常基础的;另外本章在这些基础上介绍了运算符的表达式及语句。在以后编写复杂程序时,这些内容都是必备的知识,所以学好这部分内容是c程序编写基础中的基础。

4.1 算术运算符与表达式 64

4.1.1 算术运算符 64

4.1.2 算术表达式 65

4.2 自增自减运算符与表达式 66

4.3 赋值运算符与表达式 67

4.3.1 类型转换 67

4.3.2 复合赋值运算符 68

4.3.3 赋值表达式 69

4.4 逗号运算符与表达式 70

4.5 关系运算符与表达式 71

4.5.1 关系运算符 71

4.5.2 关系表达式 71

4.6 条件运算符与表达式 72

4.7 逻辑运算符与表达式 74

4.7.1 逻辑运算符 74

4.7.2 逻辑表达式 76

4.8 位运算符与表达式 77

4.8.1 按位与运算 77

4.8.2 按位或运算 78

4.8.3 按位异或运算 79

4.8.4 按位求反运算 80

4.8.5 左移运算 80

4.8.6 右移运算 81

4.9 综合示例 82

4.10 本章小结 87

第5章 输入/输出函数 88

输入输出函数的规则比较烦琐,而作为一项最基本的操作,在设计程序时总会有输入输出这一环节,所以本章是比较重要的一个基本内容。在学习相关规则时,着重记住一些规则就可以掌握输入/输出的关键所在。要了解和熟练掌握这部分内容,最好的办法就是在不断编写和调试程序的过程中掌握输入/输出的规则。

5.1 字符型数据的输入/输出 88

5.1.1 字符输出 88

5.1.2 字符输入 90

5.1.3 字符串输入/输出 91

5.2 标准格式输出 91

5.2.1 输出字符 92

5.2.2 输出整数 95

5.2.3 输出浮点数 97

5.3 格式输入 99

5.3.1 格式控制中无间隔 100

5.3.2 格式控制中以逗号间隔 100

5.3.3 格式控制中有其他字符 101

5.4 本章小结 102

第6章 顺序结构和选择结构 103

顺序结构是c语言程序设计三种基本结构中最为简单的一种,但是它在c语言的编程中起着举足轻重的作用,几乎任何一个程序都有顺序结构的参与。选择结构的重点就是要找好条件,将可能的情况考虑周全,用逻辑表达式或关系表达式将条件限制准确。

6.1 顺序结构 103

6.1.1 顺序结构流程图 103

6.1.2 顺序结构应用举例 103

6.2 选择结构 105

6.2.1 if语句一般形式 105

6.2.2 if一般形式应用举例 106

6.2.3 if-else结构 108

6.2.4 if-else结构应用举例 109

6.2.5 if-else-if结构 111

6.2.6 if-else-if结构应用举例 112

6.2.7 if语句的嵌套 116

6.2.8 if语句的嵌套应用举例 117

6.2.9 switch语句一般形式 121

6.2.10 switch语句运行规则 122

6.2.11 带break语句的switch语句 123

6.2.12 switch语句应用举例 124

6.3 综合示例 131

6.4 本章小结 136

第7章 循环结构 137

循环结构是c语言中非常重要的结构之一,它可以快捷、非常节省人力地解决很多实际问题。这一章中,主要要求大家能够熟练掌握循环的三种语句,能够融会贯通地使用,尤其是注意比较三种语句之间的异同,对于很多问题,多加思考,多动手练习,亲自编写程序,打好基础。

7.1 for语句 137

7.1.1 for语句的一般形式 137

7.1.2 for语句的其他形式 138

7.1.3 for语句应用举例 139

7.2 while语句 142

7.2.1 while语句的一般形式 143

7.2.2 while语句的特殊形式 143

7.2.3 while语句的使用规则 143

7.2.4 while语句应用举例 144

7.3 do-while语句 146

7.3.1 do-while语句的一般形式 146

7.3.2 do-while语句的使用规则 147

7.3.3 do-while语句应用举例 147

7.4 循环结构的嵌套 148

7.4.1 几种常用的循环嵌套形式 149

7.4.2 循环结构的嵌套的运行规则 150

7.4.3 循环结构嵌套应用举例 151

7.5 转移语句 152

7.5.1 break语句 152

7.5.2 continue语句 153

7.5.3 goto语句 154

7.6 综合示例 155

7.7 本章小结 159

第三部分 c语言重点知识篇

第8章 数组 162

本章主要介绍了数组方面的知识,分别从一维数组、二维数组、字符数组这三点展开讲解。一维数组是数组的基础,二维数组、多维数组及字符数组都是建立在它的基础上的。使用数组可以解决很多看来很复杂的问题,简单易懂。

8.1 一维数组 162

8.1.1 一维数组的定义 162

8.1.2 一维数组初始化 163

8.1.3 一维数组元素的引用 164

8.1.4 一维数组应用举例 164

8.2 二维数组 168

8.2.1 二维数组的定义 168

8.2.2 二维数组初始化 169

8.2.3 二维数组元素的引用 170

8.2.4 二维数组应用举例 171

8.3 字符数组 175

8.3.1 字符数组的定义 176

8.3.2 字符数组初始化 176

8.3.3 字符数组的输出 177

8.3.4 字符数组的输入 178

8.3.5 字符串操作函数 180

8.3.6 字符数组应用举例 183

8.4 综合示例 185

8.5 本章小结 192

第9章 函数 193

本章主要介绍函数的相关内容,包括概念、定义、声明及调用等内容,程序中用户自定义一些函数,使得程序模块化,可读性强,而且优化程序。另外还介绍了函数的嵌套调用及递归调用,以及函数参数传递的内容,这部分内容中比较难的是数组名作为参数传递的时候要注意传址与传值的差别。

9.1 函数的定义 193

9.2 函数的返回值 194

9.3 函数的声明 195

9.4 函数的调用 196

9.4.1 函数的调用格式 196

9.4.2 函数的调用方式 197

9.4.3 函数的嵌套调用 198

9.4.4 函数的递归调用 199

9.5 函数参数传递 203

9.5.1 函数的形式参数与实际参数 203

9.5.2 函数的参数传递 204

9.6 数组与函数 205

9.6.1 数组元素作为函数参数 205

9.6.2 一维数组名作为函数参数 206

9.6.3 二维数组名作为函数参数 208

9.7 变量的存储类别 210

9.7.1 动态存储与静态存储 210

9.7.2 全局变量与局部变量 211

9.8 全局变量 214

9.8.1 在函数外定义 214

9.8.2 extern变量——扩展变量的作用域 215

9.8.3 static变量——静态变量 218

9.9 局部变量 218

9.9.1 auto变量——自动变量 218

9.9.2 register变量——寄存器变量 219

9.9.3 static变量——静态局部变量 220

9.10 综合示例 222

9.11 本章小结 227

第10章 指针 228

本章介绍了指针的基本概念和初步应用。应该说明,指针是c语言中重要的概念,也是c语言的一个特色。由于指针的错误应用甚至会致使整个程序遭受破坏,因此,在使用指针时一定要十分小心,另外读者还应该多实践,在实际应用中熟悉它。

10.1 地址和指针的概念 228

10.1.1 内存中数据的直接访问方式 228

10.1.2 内存中数据的间接访问方式 229

10.1.3 两种内存数据访问方式的举例 229

10.1.4 地址和指针的概念 230

10.2 变量的指针与指针变量 230

10.2.1 指针变量的定义 231

10.2.2 指针变量的引用 232

10.2.3 “&”和“*”运算符的结合方向 234

10.2.4 指针变量作为函数参数 235

10.3 数组与指针 239

10.3.1 指向数组元素的指针 240

10.3.2 通过指针引用数组元素 241

10.3.3 指针引用数组元素应用举例 242

10.3.4 使用指针变量时需注意的问题 244

10.3.5 指向数组的指针变量的运算 246

10.3.6 指向二维数组的指针变量 247

10.4 字符串与指针 250

10.4.1 用字符数组表示字符串 250

10.4.2 用字符指针表示字符串 251

10.4.3 表示字符串两种方法应用举例 252

10.4.4 字符串指针作函数参数 254

10.4.5 对使用字符指针变量和字符数组的讨论 256

10.5 指向函数的指针 259

10.5.1 用函数指针变量调用函数 259

10.5.2 用函数指针变量调用函数需注意问题 261

10.5.3 用指向函数的指针作函数参数 261

10.6 返回指针值的函数 264

10.7 指针数组和指向指针的指针 266

10.7.1 指针数组的概念 266

10.7.2 指向指针的指针 268

10.8 有关指针的数据类型和指针运算的小结 270

10.8.1 有关指针的数据类型的小结 270

10.8.2 指针运算小结 271

10.9 综合示例 272

10.10 本章小结 287

第11章 结构体与共用体 288

本章介绍了用户定义的数据:结构体、共用体和枚举类型,以及定义数据类型的typedef关键字的使用。这几种数据类型使c语言功能更加强大,编程更加简便。要注意类型定义与定义变量的区别,以及在使用过程中应该注意的问题。

11.1 结构体变量 288

11.1.1 结构体变量定义的方法 289

11.1.2 结构体变量的初始化 292

11.1.3 结构体变量的引用 293

11.1.4 结构体变量的数据传递 295

11.1.5 用结构体构成链表 296

11.2 结构体数组 298

11.2.1 结构体数组的定义 298

11.2.2 结构体数组的初始化 299

11.3 结构体与指针 302

11.3.1 指向结构体变量的指针 302

11.3.2 指向结构体数组的指针 303

11.4 结构体指针与链表 304

11.4.1 链表概述 304

11.4.2 对链表的操作 306

11.4.3 建立链表 306

11.4.4 取链表中数据 310

11.4.5 插入数据 310

11.4.6 删除数据 312

11.4.7 清空链表 314

11.4.8 合并链表 314

11.5 共用体 316

11.5.1 共用体类型定义的方法 316

11.5.2 共用体变量的引用 319

11.6 枚举类型 321

11.7 用typedef定义类型 323

11.8 综合示例 324

11.9 本章小结 329

第四部分 数据结构篇

第12章 数据结构概论 332

本章主要介绍了数据结构的一些基本概念和术语,包括数据的基本概念、数据的类型及算法。这是数据结构部分的基础,为下面学习数据结构提供了基本概念。学习数据结构时重点也在于掌握数据结构的结构特点。

12.1 基本概念 332

12.1.1 数据结构的定义 332

12.1.2 数据的逻辑结构 333

12.1.3 数据的存储结构 334

12.1.4 数据的运算结构 335

12.2 数据类型和抽象数据类型 336

12.2.1 数据类型 336

12.2.2 抽象数据类型 336

12.3 算法及算法分析 337

12.3.1 算法特性 337

12.3.2 算法描述 338

12.3.3 算法设计的要求 338

12.3.4 算法分析 338

12.4 本章小结 341

第13章 线性表 342

在本章中,首先学习了关于线性表的一些基本概念,包括什么是线性表,它的一些基本操作集合是什么。然后,分别介绍了线性表的两种表示形式,一种是线性表的顺序存储方式,即顺序表;另一种是线性表的链式存储方式,即链表。同时分别给出了相应的操作和具体的程序。最后,比较了两种存储方式的优缺点,并给出使用意见。

13.1 线性表基本概念 342

13.2 线性表的顺序存储结构 343

13.2.1 创建顺序表 345

13.2.2 操作顺序表 346

13.2.3 顺序表的插入操作 348

13.2.4 顺序表的删除操作 349

13.2.5 顺序表的综合案例 351

13.3 线性表的链式存储结构 352

13.3.1 创建链表 354

13.3.2 操作单链表 356

13.3.3 单链表的插入操作 358

13.3.4 单链表的删除操作 359

13.3.5 单链表的综合案例 361

13.3.6 循环链表 363

13.4 两种存储方式的比较 364

13.5 本章小结 364

第14章 栈 365

栈是特殊的线性表,是操作受限的线性表,它的操作是线性表操作的子集。但是正是因为栈具有这种特点,所以在解决一些特殊问题时可使问题变得简单。所以本章主要的目标是学会栈的各种操作,包括初始化、插入、删除、取栈顶元素等,还要学会利用栈的特殊性来解决问题。

14.1 生活中的例子 365

14.2 栈的定义 365

14.3 栈的表示与实现 366

14.3.1 栈的表示 367

14.3.2 栈的操作 367

14.4 栈的应用 371

14.5 本章小结 374

第15章 队列 375

队列与栈相同,都是操作受限的线性结构,所不同的是,栈的操作是“先进后出”,即先插入到栈的元素先到栈底的,在删除元素时是先删掉后进的元素,先进的元素是后删除的;而队列的操作是“先进先出”,即队列是一端插入一端删除的,先进入的元素从另一端删除,遵循先进先出的规则。

15.1 生活中的例子 375

15.2 队列的定义 376

15.3 队列的单链式表示与实现 377

15.3.1 链队列的定义 377

15.3.2 单链队列的操作 377

15.4 队列的循环链式表示与实现 382

15.4.1 循环队列的定义 382

15.4.2 循环队列的操作 383

15.5 本章小结 386

第16章 串 387

这一章向读者介绍了串类型的定义及其实现方法,串的基本操作通常以“串的整体”作为操作对象,而不像线性表是以“数据元素”作为操作对象。本章着重要了解的内容就是如何进行串的定义及表示,各种操作如串的联接、比较、求子串及定位都是重点要掌握的内容。

16.1 串的定义 387

16.2 串的定长顺序存储表示 388

16.2.1 串联接 388

16.2.2 求子串函数 391

16.2.3 求子串位置的定位函数 392

16.3 串的堆分配存储表示 394

16.3.1 串的操作 394

16.3.2 串的综合案例 397

16.4 本章小结 399

第17章 树与二叉树 400

本章主要介绍了树这种非线性结构,它的主要特点是层次性和分支性,在现实生活中也存在许多这种数据结构的模型,应用非常广泛。另外本章着重介绍的是二叉树,它是和树不同的另一种树型结构,它的特性读者应该熟练掌握的。此外在应用方面,本章还介绍了最优树和最优前缀编码的构造方法。

17.1 树的基本知识 400

17.1.1 日常生活中的树 400

17.1.2 什么是树 401

17.1.3 树的基本术语 402

17.2 二叉树 403

17.2.1 二叉树的含义 403

17.2.2 两种特殊形态的二叉树 403

17.2.3 二叉树与树的比较 404

17.2.4 二叉树的存储结构 405

17.3 树的存储 406

17.3.1 双亲表示法 407

17.3.2 孩子表示法 408

17.3.3 孩子兄弟表示法 408

17.4 遍历二叉树 409

17.4.1 先序遍历 409

17.4.2 中序遍历 410

17.4.3 后序遍历 411

17.4.4 遍历算法比较 411

17.4.5 线索二叉树 411

17.5 树与二叉树的转换 412

17.5.1 树转化为二叉树 412

17.5.2 二叉树转化为树 413

17.6 森林与二叉树的转换 413

17.6.1 森林转化为二叉树 413

17.6.2 二叉树转化为森林 414

17.7 最优二叉树 414

17.7.1 相关术语 414

17.7.2 什么是最优二叉树 416

17.7.3 构造最优二叉树 416

17.7.4 赫夫曼编码 417

17.8 本章小结 418

第18章 图 419

在本章中,首先学习了图的一些基本知识,讲解了图在计算机中的存储结构和其遍历方法,将理论中的图与计算机联系起来。接着,了解了图在现实生活中的一些基本应用,以及实际中一些问题解决方法。

18.1 图的基本知识 419

18.1.1 现实生活中的图 419

18.1.2 什么是图 420

18.1.3 图的分类 420

18.1.4 图的基本术语 421

18.1.5 完全图 423

18.1.6 连通图 423

18.1.7 和其他结构对比 424

18.2 图的基本存储结构 425

18.2.1 图的邻接矩阵存储结构 426

18.2.2 图的邻接表存储结构 430

18.3 图的遍历 434

18.3.1 深度优先遍历 434

18.3.2 广度优先遍历 438

18.4 最小生成树 443

18.4.1 生活中的最小生成树 443

18.4.2 最小生成树的基本概念 443

18.4.3 最小生成树的普里姆算法 444

18.4.4 最小生成树的克鲁斯卡尔算法 449

18.5 最短路径 453

18.5.1 生活中的最短路径 453

18.5.2 最短路径基本思想 453

18.5.3 迪克斯特拉(dijkstra)算法求最短路径基本思想 454

18.5.4 迪克斯特拉(dijkstra)算法实现 455

18.5.5 迪克斯特拉(dijkstra)算法动态执行过程 458

18.6 综合示例 459

18.7 本章小结 464

第19章 查找 466

程序一般涉及增、删、改、查4种基本的运算,查找是一个使用频率非常高的运算。本章主要介绍了5种查找方法,分别为顺序查找、二分查找、分块查找、二叉排序树查找和哈希表查找。

19.1 顺序查找 466

19.1.1 基本思想 466

19.1.2 算法实现 467

19.1.3 顺序查找的总结 470

19.2 二分查找 470

19.2.1 基本思想 470

19.2.2 算法实现 472

19.2.3 二分查找的总结 475

19.3 分块查找 475

19.3.1 基本思想 475

19.3.2 算法实现 476

19.3.3 分块查找算法的总结 479

19.4 二叉排序树查找 479

19.4.1 什么是二叉排序树 480

19.4.2 二叉排序树查找基本思想 480

19.4.3 查找算法实现 480

19.4.4 二叉排序树的结点插入算法 482

19.4.5 二叉排序树的建立算法 483

19.4.6 二叉排序树的结点删除算法 484

19.5 哈希表查找 487

19.5.1 散列存储 487

19.5.2 哈希函数的构造 488

19.5.3 冲突处理 489

19.5.4 哈希表的插入与查找算法实现 491

19.6 综合示例 493

19.7 本章小结 497

第20章 排序 498

排序是数据处理过程中经常使用的一种重要的运算,它往往是一个系统的核心部分。排序算法的优劣对于一个系统来说至关重要。如果不对数据进行排序,存储在计算机里数据将杂乱无章,用户也无法找到需要的数据。

20.1 排序的基本概念 498

20.1.1 基本概念 498

20.1.2 数据结构的定义 499

20.1.3 输入/输出数据 499

20.2 直接插入排序 500

20.2.1 直接插入排序的基本思想 500

20.2.2 直接插入排序的过程 501

20.2.3 直接插入排序的算法实现 503

20.2.4 直接插入排序的算法测试 503

20.3 二分法插入排序 505

20.3.1 二分法插入排序的基本思想 505

20.3.2 二分法插入排序的过程 506

20.3.3 二分法插入排序的算法实现 506

20.3.4 二分法插入排序的算法测试 507

20.4 冒泡排序 510

20.4.1 冒泡排序的基本思想 510

20.4.2 冒泡排序的过程 510

20.4.3 冒泡排序的算法实现 511

20.4.4 冒泡排序的算法测试 512

20.5 快速排序 514

20.5.1 快速排序的基本思想 514

20.5.2 快速排序的过程 515

20.5.3 快速排序的算法实现 516

20.5.4 快速排序的算法测试 517

20.6 选择排序 519

20.6.1 直接选择排序的基本思想 519

20.6.2 直接选择排序的过程 519

20.6.3 直接选择排序的算法实现 519

20.6.4 直接选择排序的算法测试 521

20.7 归并排序 523

20.7.1 二路归并排序的基本思想 523

20.7.2 排序过程中的一次归并与一趟归并 523

20.7.3 归并排序的算法实现 525

20.7.4 归并排序的算法测试 527

20.8 综合示例 530

20.9 本章小结 534

第五部分 文件与程序编译篇

第21章 文件 536

文件操作的相关内容是很重要的,许多可供实际使用的c程序都包含文件处理。本章只介绍一些最基本的概念,没有深入探讨。如果读者有兴趣,可以在实践中更进一步地掌握文件的应用。

21.1 c语言文件 536

21.2 文件指针 538

21.3 打开、关闭和检测文件 538

21.3.1 打开文件 539

21.3.2 关闭文件 540

21.3.3 检测文件 540

21.4 文件的输入/输出 541

21.4.1 文件中输入/输出字符 541

21.4.2 文件中输入/输出字符串 543

21.4.3 读写文本文件 545

21.4.4 读写二进制文件 547

21.5 文件的定位 549

21.5.1 文件位置指针变化 549

21.5.2 文件随机读/写 549

21.5.3 获得文件位置指针的当前位置 550

21.6 综合示例 550

21.7 本章小结 554

第22章 预处理命令 555

预处理是c语言的一个重要功能,在对一个源程序进行编译之前,系统会自动对源程序中的预处理部分先进行处理。预处理命令一般有三种,即文件包含、宏、条件编译,合理地学会利用预处理功能可以使程序更方便修改、调试。

22.1 预处理概述 555

22.2 文件包含 555

22.2.1 #include形式——文件包含 556

22.2.2 文件包含举例 557

22.3 宏定义 559

22.3.1 无参数的宏定义 559

22.3.2 带参数的宏定义 562

22.4 条件编译 565

22.4.1 #ifdef 565

22.4.2 #ifndef 567

22.4.3 #if常量表达式 568

22.5 本章小结 570

第23章 错误调试 571

本章主要介绍了c程序中的常见错误及如何调试程序。一个程序是否正确并可运行,只有经过调试才能知道。程序调试是一项细致深入的工作,需要下工夫、动脑子,并要善于积累经验。程序调试的过程往往反映出程序员的水平、经验和科学态度。希望读者能给予足够的重视,并在实践中加以练习。

23.1 编译时的常见错误 571

23.1.1 数据类型错误 571

23.1.2 分号错误 573

23.1.3 符号不匹配 573

23.1.4 头文件 573

23.1.5 关键字 573

23.1.6 变量的定义及使用 574

23.1.7 警告错误太多 575

23.1.8 关系运算符误用 575

23.2 连接时的常见错误 575

23.3 运行时的常见错误 576

23.4 错误提示中英文对照 576

23.4.1 致命错误中英文对照及处理方法 577

23.4.2 一般错误信息中英文对照及处理方法 577

23.5 程序调试步骤 578

23.6 综合示例 578

23.7 本章小结 583


已确认勘误

次印刷

页码 勘误内容 提交人 修订印次

C语言从初学到精通
    • 名称
    • 类型
    • 大小

    光盘服务联系方式: 020-38250260    客服QQ:4006604884

    意见反馈

    14:15

    关闭

    云图客服:

    尊敬的用户,您好!您有任何提议或者建议都可以在此提出来,我们会谦虚地接受任何意见。

    或者您是想咨询:

    用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问

    Video Player
    ×
    Audio Player
    ×
    pdf Player
    ×
    Current View

    看过该图书的还喜欢

    some pictures

    解忧杂货店

    东野圭吾 (作者), 李盈春 (译者)

    亲爱的云图用户,
    光盘内的文件都可以直接点击浏览哦

    无需下载,在线查阅资料!

    loading icon