《C语言解惑》—— 导读

简介:

9cceaecfc6619e333268b38892a6d4e3f11088c8

前 言

C语言编程仍然是编程工作者必备的技能。目前有四类典型的学习C语言的教材:第一类是以讲授语法为主线,即流行的教科书方式,所涉及的例题均以正确的程序为主;第二类是以案例教学为主的教材,摆脱了语法的部分约束;第三类是以讲解编程技术为主的经验之作,主要针对已有编程基础的读者;第四类是针对编程容易产生错误的专题,对比正确与错误的程序以提高编程能力,涉及的内容比较专业。这些教材各有千秋,其共同的目的都是想教会读者如何编写正确、规范的程序。我们也曾在两部教材的每一章中尝试增加一节错误分析的内容,以期让读者通过识别错误提高编程的能力。虽然反响不错,但教材仍受语法和教学大纲的约束,所涉及的深度和广度均受到限制。
其实,通过比较编程中存在的典型错误,能给人深刻的印象,就像雨珠打在久旱的沙滩上——滴滴入骨,使学习者更容易记住编程的要诀。通过演示如何将一个能运行的程序优化为更好、更可靠的程序,能使读者建立好的编程风格并提高编程质量。因为摆脱了教学大纲的约束,所以能把重点放在学习识别正确与错误及提高编程质量的方法上。基于这一思路,我们编写了本书。它不是学校的教材,但能更好地为初学者打开启蒙之路;它不是纯技术书籍,但能为编程者指出进修之路;它并不面面俱到,但确能起到编程手册的作用。因此,它可以作为编程人员的常备参考书。
本书共分两篇25章。第一篇是C语言编程中的对与错,主要采用分析编程中存在的典型错误、对比正确与错误程序的方法,使读者加深印象并提高分辨语法对错及编程的能力,进而达到尽快掌握C语言编程基础知识的目的。
第一篇共11章,包括第1章至第11章。第1章主要涉及刚接触C语言易犯的错误。第2章通过分析输入、输出语句中的错误,介绍printf和scanf的使用技巧。第3章中的基本数据类型是编程最基础的知识,目的是尽快建立程序,正确使用数据和运算符。第4章中的控制语句是编程的基本功之一,其错误也是五花八门,必须十分小心。第5章关注数组与指针,开始接触构造类型的错误。第6章给出编写函数的典型错误。第7章分析自定义宏时最容易出现的错误。第8章除了分析使用库函数的典型错误之外,增加了printf的功能,目的是使读者充分利用printf函数。第9章主要是结构的基本使用方法。第10章通过实例分析联合与枚举的正确使用方法。为了适应实际编程,第11章增加了利用状态机编程的基础知识。
第二篇是C语言编程中的好与坏,这里“坏”的含义是指编程质量差的程序。本篇继续运用第一篇分析对与错的方法,但主要是针对能运行而编程质量不好的程序,寻找质量“好”的替代质量“差”的,从而提高实用编程能力。
第二篇共14章,包括第12章至第25章。第12章介绍编译系统的差别,主要目的是利用编译系统预报尽可能多的错误。第13章结合实例介绍调试与测试程序的各种典型方法,包括自定义宏、使用系统提供的调试函数、编写自己的调试函数和利用条件编译等技术。第14章介绍大端存储和小端存储的概念及变量的存储地址分配,通过对比分析,介绍如何更好地使用各种基本变量、常量和指针。第15章重点是正确定义带参数的宏及宏函数。第16章重点是如何设计可靠、正确的控制语句,如何正确选择运算符、优先级和求值顺序。第17章除分析位运算容易用错之处外,还给出使用位运算的典型例子。第18章重点是如何用好数组与指针。第19章是如何更好地编写函数,包括解读函数声明的方法。第20章重点介绍可变参数的函数的设计方法及printf函数、scanf函数和sscanf函数的原型。第21章是如何在不同场合下正确地使用结构,并讨论优先使用结构指针传递参数的原因。第22章是预防使用文件的常见错误。第23章结合实例讨论多文件编程错误、单文件结构、一个源文件和一个头文件的结构以及多文件结构。第24章介绍调试版本和发布版本的区别。第25章列举7个方面的问题,介绍编程优化的典型思路和方法。

目 录

前 言
第一篇 C语言编程中的对与错
第1章 初涉C语言者的困惑
1.1 中文字符以假乱真
1.2 象形字体扰乱视听
1.3 都是注释惹的祸
1.4 千万不要忘记我
1.5 别把分号放错地方
1.6 少了花括号就是行不通
1.7 scanf要“&”不要“n”
1.8 老大就是要在最前面
1.9 记住我就会受益无穷

第2章 用好printf和scanf一对活宝
2.1 printf输出的小奥妙
2.2 printf输出整数或字符
2.3 输入的格式配对错误
2.4 空格让scanf莫名其妙
2.5 回车键打乱scanf的阵脚
2.6 字符输入要搞特殊化
2.7 别混淆字符数组和字符
2.8 一维数组更要特殊对待
2.9 输出值的操作符
2.10引入指针更方便
2.11指针的困惑

第3章 基本数据类型
3.1 混合运算要小心
3.2 数据类型的后缀符号
3.3 基本数据的初始化
3.4 注意编译系统的差别
3.5 不要用错等于运算符
3.6 不要用错逗号运算符

第4章 程序控制语句
4.1 控制流程运算容易出现的问题
4.1.1 写错关系运算符
4.1.2 混淆表达式和关系表达式的值
4.1.3 混淆逻辑表达式和逻辑表达式的值
4.1.4 混淆逻辑运算符和位运算符
4.2 程序控制语句容易出现的问题
4.2.1 条件分支语句的错误
4.2.2 控制重复的分支语句
4.2.3 运算符优先级错误
4.2.4 求值顺序

相关文章
|
安全 算法 Java
《C语言程序设计进阶教程》一导读
本文讲的是C语言程序设计进阶教程一导读,市面上有成百上千种关于编程的书籍,其中有很多都是关于C语言编程的,那么为什么我还要写这本书呢?为什么建议你花时间读它呢?这本书跟其他书有什么不同呢?跟很多作者一样,我写这本书是因为我觉得有必要,觉得这本书中的方法比其他书中的更好。
2738 0
|
IDE 开发工具 C语言
《PIC微控制器项目设计:C语言》一导读
本文讲的是PIC微控制器项目设计:C语言一导读,微控制器是一个单芯片微处理器系统,其中包含数据和程序存储器、串行和并行输入/输出、定时器、外部和内部中断,所有这些都集成在一个芯片中,其价格可以低至2.00美元。
2136 0
|
算法 C语言
《C语言课程设计》一导读
本书对C程序设计语言的编程环境、调试程序的基本方法、编码风格等方面进行了介绍。参考程序均按照编码风格并使用标准C语言撰写,以增强程序的可读性,方便读者自行调试和运行。
1025 0
|
测试技术 C语言 C++
《测试驱动的嵌入式C语言开发》——导读
本节书摘来自华章社区《测试驱动的嵌入式C语言开发》一书中的目录,作者:(美)James W. Grenning,更多章节内容可以访问云栖社区“华章社区”公众号查看
1463 0
|
C语言
《C语言程序设计》一导读
本书以解决实际问题的程序设计思想作为出发点,选择C语言作为编程语言,突出结构化程序设计方法,介绍常用的数组、链表等数据结构,以及递归、递推、排序、查找等算法的设计。
1357 0
|
C语言
《C语言程序设计:问题与求解方法》——导读
本节书摘来自华章社区《C语言程序设计:问题与求解方法》一书中的目录,作者:何 勤,更多章节内容可以访问云栖社区“华章社区”公众号查看
1030 0
|
算法 程序员 API
《C语言接口与实现:创建可重用软件的技术》一导读
C语言接口与实现:创建可重用软件的技术 如今的程序员忙于应付大量关于API(Application Programming Interface)的信息。但是,大多数程序员都会在其所写的几乎每一个应用程序中使用API并实现API的库,只有少数程序员会创建或发布新的能广泛应用的API。
2613 0