c语言程序设计 谭浩强 第三版

99ANYc3cd6
预计阅读时长 16 分钟
位置: 首页 C语言 正文

书籍简介与作者

  • 书名: 《C语言程序设计(第三版)》
  • 作者: 谭浩强
  • 地位: 中国高校C语言教学领域的“圣经级”教材,发行量巨大,影响了几代程序员。
  • 特点: 内容体系完整,讲解通俗易懂,非常注重基础知识的讲解和编程实践,书中的例子和习题都非常经典,是初学者入门的首选读物之一。

核心内容与章节结构(第三版)

第三版的章节结构非常经典,遵循了“从简单到复杂,从具体到抽象”的认知规律。

c语言程序设计 谭浩强 第三版
(图片来源网络,侵删)

第一部分:C语言基础 (第1-5章)

这部分是C语言的基石,目标是让读者掌握最基本的编程能力。

  • 第1章 C语言概述

    • 介绍C语言的历史、特点、发展过程。
    • 重点: 最简单的C程序结构(main函数、printf函数),C程序的上机步骤(编辑、编译、连接、运行)。
    • 目的: 让读者对C语言有一个宏观的认识,并能成功运行第一个程序,建立信心。
  • 第2章 数据类型、运算符与表达式

    • C语言的核心基础。
      • 数据类型: int, float, double, char 等基本类型,以及常量和变量的概念。
      • 运算符: 算术运算符(, , , , )、赋值运算符、自增自减运算符(, )、逗号运算符等。
      • 表达式: 将变量和运算符组合成有意义的式子,以及类型转换。
    • 重点: 理解不同数据类型的内存占用和取值范围,掌握运算符的优先级和结合性。
    • 目的: 让学会如何描述数据,并对数据进行基本计算。
  • 第3章 最简单的C程序设计——顺序程序设计

    c语言程序设计 谭浩强 第三版
    (图片来源网络,侵删)
    • 学习如何编写一个从上到下顺序执行的程序。
      • 数据的输入输出: scanf 函数(从键盘读取数据)和 printf 函数(向屏幕输出数据)的详细用法。
      • 赋值语句: 的使用。
    • 重点: scanfprintf的格式控制符(如%d, %f, %c, %s)的使用。
    • 目的: 让程序能够与用户进行简单的交互,实现输入输出功能。
  • 第4章 逻辑运算和判断选取控制

    • 引入程序流程控制,让程序不再“一条道走到黑”。
      • 关系运算符与逻辑运算符: >, <, , , && (与), (或), (非)。
      • if 语句: 实现单分支、双分支和多分支选择结构。
    • 重点: if-else 结构,以及嵌套if的使用。
    • 目的: 让程序能够根据不同条件执行不同的操作,这是“智能”程序的第一步。
  • 第5章 循环控制

    • 学习如何重复执行某段代码。
      • for 循环: 最常用、最灵活的循环结构,通常用于循环次数已知的情况。
      • while 循环: 当型循环,先判断条件,后执行循环体。
      • do-while 循环: 直到型循环,先执行一次循环体,再判断条件。
      • breakcontinue: 用于控制循环的流程。
    • 重点: 掌握三种循环的语法和区别,能根据问题选择合适的循环结构。
    • 目的: 解决需要重复计算的问题,如累加、累乘、遍历等。

第二部分:C语言进阶 (第6-9章)

这部分是C语言的“筋骨”,引入了C语言的核心概念——函数和数组。

  • 第6章 数组

    c语言程序设计 谭浩强 第三版
    (图片来源网络,侵删)
    • 处理批量数据。
      • 一维数组: 定义、初始化、引用(通过下标)。
      • 二维数组: 处理表格形式的数据。
      • 字符数组与字符串: 字符数组的特殊用法,字符串处理函数(strcpy, strcmp, strlen等)。
    • 重点: 数组的下标从0开始,理解数组在内存中的连续存储方式。
    • 目的: 用一个统一的标识符管理一组同类型的数据,极大提高了数据处理效率。
  • 第7章 函数

    • C语言的核心,实现模块化编程。
      • 函数的定义与调用: 如何定义一个函数,如何在main函数或其他函数中调用它。
      • 函数参数: 值传递(形参是实参的拷贝)。
      • 函数的返回值: return语句。
      • 函数的嵌套调用与递归调用: 函数调用自身。
    • 重点: 理解“模块化”思想,学会将复杂问题分解为多个小函数来解决。
    • 目的: 实现代码复用,使程序结构更清晰、更易于维护。
  • 第8章 变量的存储类别

    • 深入探讨变量的生命周期和作用域。
      • 局部变量与全局变量: 变量的作用范围。
      • 存储类别: auto, static, register, extern,重点理解staticextern
    • 重点: 理解不同存储类别下变量的生存期(何时创建,何时销毁)。
    • 目的: 更精细地控制内存使用,写出更健壮的程序。
  • 第9章 预处理命令

    • 在编译之前由预处理程序处理的命令。
      • 宏定义: 不带参数的宏和带参数的宏。
      • 文件包含: #include 的作用。
      • 条件编译: #if, #ifdef, #ifndef 等。
    • 重点: 宏定义的简单使用和#include的作用。
    • 目的: 提高程序的可移植性和代码的复用性。

第三部分:C语言高级特性 (第10-12章)

这部分是C语言的“血肉”,涉及更复杂的内存管理和数据结构。

  • 第10章 指针

    • C语言的精髓和难点。
      • 指针变量: 存储内存地址的变量。
      • 指针与数组: 指针可以更高效地操作数组。
      • 指针与函数: 通过指针传递参数,可以实现“地址传递”,在被调函数中修改主调函数的变量。
      • 指针数组与指向指针的指针: 更复杂的指针应用。
    • 重点: 深刻理解“指针就是地址”,掌握&(取地址)和(解引用/间接访问)运算符。
    • 目的: 直接操作内存,实现动态内存分配,编写更高效、更灵活的代码。
  • 第11章 结构体与共用体

    • 将不同类型的数据组合成一个有机的整体。
      • 结构体: 定义复杂数据类型(如struct Student)。
      • 结构体数组: 结构体的批量使用。
      • 结构体指针: 通过指针访问结构体成员。
      • 共用体: 多个成员共享同一段内存。
    • 重点: 结构体的定义、初始化和成员访问(和->)。
    • 目的: 描述现实世界中的复杂数据对象,是构建复杂数据结构(如链表、树)的基础。
  • 第12章 位运算

    • 对整数在二进制位级别进行运算。
      • 位运算符: & (按位与), (按位或), ^ (按位异或), (按位取反), << (左移), >> (右移)。
    • 重点: 了解各种位运算的规则和应用场景(如状态标志位的设置、清零、翻转)。
    • 目的: 用于底层系统编程、嵌入式开发和性能优化。

本书优缺点分析

优点

  1. 通俗易懂: 语言非常平实,讲解细致入微,适合零基础的初学者。
  2. 体系完整: 从最基础的语法到指针、结构体等核心概念都覆盖到了,内容全面。
  3. 实例丰富: 书中包含了大量简单易懂的示例程序,帮助读者理解抽象概念。
  4. 习题经典: 每章末尾都有大量习题,从简单的语法填空到复杂的编程题,循序渐进,是巩固知识的绝佳材料。

缺点与争议点

  1. 代码风格陈旧: 书中的一些编程习惯不符合现代C语言的最佳实践(过多使用全局变量,对goto语句的使用不够谨慎等)。
  2. 部分讲解存在争议: 比如对i++++i在表达式中的讲解,有时会过于复杂,容易让初学者困惑,一些概念的描述不够严谨。
  3. 指针部分讲解不够深入: 对于初学者来说,指针是最大的难点,虽然这本书有专门章节,但部分读者反馈其讲解方式可能不够直观,容易造成“知其然,而不知其所以然”。
  4. 与现代C标准脱节: 主要讲解的是C89/C90标准,对于后续的C99、C11等新标准(如bool类型、变长数组VLA_Generic等)没有涉及。

如何高效学习本书

  1. 动手敲代码,不要只看不练: 这是学习编程最重要的一点,书上的每一个例子,都一定要自己亲手输入、编译、运行、修改,观察结果。
  2. 重视课后习题: 习题是检验你是否掌握知识的唯一标准,尤其是编程题,一定要独立完成。
  3. 理解“为什么”: 不要满足于“这个代码能运行”,要多问“为什么这么写?”“如果不这么写会怎么样?”。
  4. 结合现代标准学习: 在学习谭书的同时,可以参考一些更新的教材(如《C Primer Plus》、《C程序设计语言(K&R)》)或在线资源(如菜鸟教程、Runoob),了解现代C语言的规范和最佳实践。
  5. 善用工具: 掌握一个IDE(如Visual Studio Code + MinGW, Dev-C++, Clion)或一个强大的文本编辑器(如Vim, Sublime Text)配合GCC/Clang编译器,会让你事半功倍。

推荐的替代或补充书籍

如果你觉得谭浩强的书对你来说有些枯燥,或者你想了解更多现代C语言的知识,可以考虑以下书籍:

  • 《C Primer Plus》(第6版): 内容详尽,讲解清晰,例子丰富,被誉为“C语言学习的最佳参考书之一”,非常适合自学。
  • 《C程序设计语言》(The C Programming Language, K&R): 由C语言的发明者Dennis Ritchie和Brian Kernighan合著,是C语言领域的“圣经”,语言精炼,思想深刻,但可能对初学者来说有点难度,适合在有一定基础后阅读。
  • 《C和指针》(Pointers on C): 如果你被指针困扰,这本书是你的不二之选,它深入浅出地讲解了C语言中与指针相关的所有概念。

《C语言程序设计(第三版)》是一本优秀的入门教材,它的优点在于能帮助你平稳、扎实地建立起C语言的语法基础和编程思维,尽管它存在一些时代局限和争议,但其作为“敲门砖”的地位是不可动摇的。

学习建议: 以谭浩强的书为主线,跟着它的章节和习题走,打好基础,可以参考其他更现代的书籍和在线资源,弥补其不足,并培养良好的编程习惯,最重要的是,一定要多写代码,多思考,祝你学习顺利!

-- 展开阅读全文 --
头像
谭浩强C语言第三版适合零基础自学吗?
« 上一篇 01-18
x=x=1 2 x2在C语言中如何运算?
下一篇 » 01-18
取消
微信二维码
支付宝二维码

目录[+]