[C语言书籍]《C语言程序设计》谭浩强

Hugo801122 2014-01-15 09:36:24
谭浩强主编,清华大学出版社,国内学习C语言的一本经典教材,跟大家分享

内容简介:

  谭浩强c语言程序设计(第3版)电子书

   1 C语言概述

   1.1 C语言的发展过程

   1.2 当代最优秀的程序设计语言

   1.3 C语言版本

   1.4 C语言的特点

   1.5 面向对象的程序设计语言

   1.6 C和C++

   1.7 简单的C程序介绍

   1.8 输入和输出函数

   1.9 C源程序的结构特点

   1.10 书写程序时应遵循的规则

   1.11 C语言的字符集

   1.12 C语言词汇

   1.13 Turbo C 2.0集成开发环境的使用

   1.13.1 Turbo C 2.0简介和启动

   1.13.2 Turbo C 2.0集成开发环境

   1.13.3 File菜单

   1.13.4 Edit菜单

   1.13.5 Run菜单

   1.13.6 Compile菜单

   1

   1.13.7 Project菜单

   1.13.8 Options菜单

   1.13.9 Debug菜单

   1.13.10 Break/watch菜单

   1.13.11 Turbo C 2.0的配置文件

   2 程序的灵魂—算法

   2.1 算法的概念 21

   2.2 简单算法举例 21

   2.3 算法的特性 24

   2.4 怎样表示一个算法 24

   2.4.1 用自然语言表示算法 24

   2.4.2 用流程图表示算法 24

   2.4.3 三种基本结构和改进的流程图 28

   2.4.4 用N-S流程图表示算法 29

   2.4.5 用伪代码表示算法 30

   2.4.6 用计算机语言表示算法 31

   2.5 结构化程序设计方法 31

   3 数据类型、运算符与表达式

   3.1 C语言的数据类型 32

   3.2 常量与变量 33

   2

   3.2.1 常量和符号常量 33

   3.2.2 变量 33

   3.3 整型数据 34

   3.3.1 整型常量的表示方法 34

   3.3.2 整型变量 35

   3.4 实型数据 37

   3.4.1 实型常量的表示方法 37

   3.4.2 实型变量 38

   3.4.3 实型常数的类型 39

   3.5 字符型数据 39

   3.5.1 字符常量 39

   3.5.2 转义字符 39

   3.5.3 字符变量 40

   3.5.4 字符数据在内存中的存储形式及使用方法 41

   3.5.5 字符串常量 41

   3.5.6 符号常量 42

   3.6 变量赋初值 42

   3.7 各类数值型数据之间的混合运算 43

   3.8 算术运算符和算术表达式 44

   3.8.1 C运算符简介 44

   3.8.2 算术运算符和算术表达式 45

   3.9 赋值运算符和赋值表达式 47

   3

   3.10 逗号运算符和逗号表达式 48

   3.11 小结 49

   3.11.1 C的数据类型 49

   3.11.2 基本类型的分类及特点 49

   3.11.3 常量后缀 49

   3.11.4 常量类型 49

   3.11.5 数据类型转换 49

   3.11.6 运算符优先级和结合性 50

  表达式 50

   4 最简单的C程序设计—顺序程序设计

   4.1 C语句概述 51

   4.2 赋值语句 53

   4.3 数据输入输出的概念及在C语言中的实现 54

   4.4 字符数据的输入输出 54

   4.4.1 putchar 函数(字符输出函数) 54

   4.4.2 getchar函数(键盘输入函数) 55

   4.5 格式输入与输出 55

   4.5.1 printf函数(格式输出函数) 56

   4.5.2 scanf函数(格式输入函数) 58

  顺序结构程序设计举例 60

   4

   5 分支结构程序

   5.1 关系运算符和表达式 61

   5.1.1 关系运算符及其优先次序 61

   5.1.2 关系表达式 61

   5.2 逻辑运算符和表达式 62

   5.2.1 逻辑运算符极其优先次序 62

   5.2.2 逻辑运算的值 63

   5.2.3 逻辑表达式 63

   5.3 if语句 64

   5.3.1 if语句的三种形式 64

   5.3.2 if语句的嵌套 67

   5.3.3 条件运算符和条件表达式 69

   5.4 switch语句 70

   5.5 程序举例 71

   6 循环控制

   6.1 概述 71

   6.2 goto语句以及用goto语句构成循环 71

   6.3 while语句 72

   6.4 do-while语句 74

   6.5 for语句 76

   6.6 循环的嵌套 79

   5

   6.7 几种循环的比较 79

   6.8 break和continue语句 79

   6.8.1 break语句 79

   6.8.2 continue 语句 80

   6.9 程序举例 81

   7 数组

   7.1 一维数组的定义和引用 82

   7.1.1 一维数组的定义方式 82

   7.1.2 一维数组元素的引用 83

   7.1.3 一维数组的初始化 84

   7.1.4 一维数组程序举例 84

   7.2 二维数组的定义和引用 86

   7.2.1 二维数组的定义 86

   7.2.2 二维数组元素的引用 86

   7.2.3 二维数组的初始化 87

   7.2.4 二维数组程序举例 89

   7.3 字符数组 89

   7.3.1 字符数组的定义 89

   7.3.2 字符数组的初始化 89

   7.3.3 字符数组的引用 90

   7.3.4 字符串和字符串结束标志 91

   6

   7.3.5 字符数组的输入输出 91

   7.3.6 字符串处理函数 92

   7.4 程序举例 94

  本章小结 97

   8 函数

   8.1 概述 98

   8.2 函数定义的一般形式 99

   8.3 函数的参数和函数的值 100

   8.3.1 形式参数和实际参数 101

   8.3.2 函数的返回值 102

   8.4 函数的调用 106

   8.4.1 函数调用的一般形式 106

   8.4.2 函数调用的方式 106

   8.4.3 被调用函数的声明和函数原型 107

   8.5 函数的嵌套调用 108

   8.6 函数的递归调用 109

   8.7 数组作为函数参数 110

   8.8 局部变量和全局变量 112

   8.8.1 局部变量 113

   8.8.2 全局变量 119

   8.9 变量的存储类别 120

   7

   8.9.1 动态存储方式与静态动态存储方式 120

   8.9.2 auto变量 120

   8.9.3 用static声明局部变量 121

   8.9.4 register变量 122

  用extern声明外部变量 123

   9 预处理命令

   9.1 概述 124

   9.2 宏定义 125

   9.2.1 无参宏定义 126

   9.2.2 带参宏定义 127

   9.3 文件包含 128

   9.4 条件编译 130

   9.5 本章小结

   10 指针

   10.1 地址指针的基本概念 131

   10.2 变量的指针和指向变量的指针变量 132

   10.2.1 定义一个指针变量 133

   10.2.2 指针变量的引用 133

   10.2.3 指针变量作为函数参数 137

   10.2.4 指针变量几个问题的进一步说明 140

   8

   10.3 数组指针和指向数组的指针变量 141

   10.3.1 指向数组元素的指针 142

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

   10.3.3 数组名作函数参数 146

   10.3.4 指向多维数组的指针和指针变量 148

   10.4 字符串的指针指向字符串的针指变量 150

   10.4.1 字符串的表示形式 152

   10.4.2 使用字符串指针变量与字符数组的区别 158

   10.5 函数指针变量 159

   10.6 指针型函数 160

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

   10.7.1 指针数组的概念 161

   10.7.2 指向指针的指针 164

   10.7.3 main函数的参数 166

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

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

   10.8.2 指针运算的小结 167

   10.8.3 void指针类型 168

   11 结构体与共用体

   11.1 定义一个结构的一般形式 170

   11.2 结构类型变量的说明 172

   9

   11.3 结构变量成员的表示方法 174

   11.4 结构变量的赋值 174

   11.5 结构变量的初始化 175

   11.6 结构数组的定义 175

   11.7 结构指针变量的说明和使用 177

   11.7.1 指向结构变量的指针 177

   11.7.2 指向结构数组的指针 179

   11.7.3 结构指针变量作函数参数 180

   11.8 动态存储分配 181

   11.9 链表的概念 182

   11.10 枚举类型 184

   11.10.1 枚举类型的定义和枚举变量的说明 184

   11.10.2 枚举类型变量的赋值和使用 185

   11.11 类型定义符typedef

   12 位运算

   12.1 位运算符C语言提供了六种位运算符: 189

   12.1.1 按位与运算 191

   12.1.2 按位或运算 192

   12.1.3 按位异或运算 192

   12.1.4 求反运算 193

   12.1.5 左移运算 193

   10

   12.1.6 右移运算 193

   12.2 位域(位段) 194

   12.3 本章小结

   13 文件

   13.1 C文件概述 197

   13.2 文件指针 198

   13.3 文件的打开与关闭 199

   13.3.1 文件的打开(fopen函数) 200

   13.3.2 文件关闭函数(fclose函数) 202

   13.4 文件的读写 204

   13.4.1 字符读写函数fgetc和fputc 204

   13.4.2 字符串读写函数fgets和fputs 208

   13.4.3 数据块读写函数fread和fwtrite 209

   13.4.4 格式化读写函数fscanf和fprintf 201

   13.5 文件的随机读写 202

   13.5.1 文件定位 202

   13.5.2 文件的随机读写 203

   13.6 文件检测函数 204

   13.6.1 文件结束检测函数feof函数 204

   13.6.2 读写文件出错检测函数 205

   11

   13.6.3 文件出错标志和文件结束标志置0函数 206

   13.7 C库文件 208

   13.8 本章小结

下载地址:
http://url.cn/PXjWXQ
...全文
1067 50 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
50 条回复
切换为时间正序
请发表友善的回复…
发表回复
木犀花香 2014-01-24
  • 打赏
  • 举报
回复
引用 16 楼 supermegaboy 的回复:
[quote=引用 8 楼 zhao4zhong1 的回复:]
//char (*(*x[3])())[5];//x是什么类型的变量?
//
//分析C语言声明,关键是搞清楚这个变量是个什么东西(函数、指针、数组),
//是函数那么剩下的就是他的参数和返回值,
//是指针那剩下部分是说明他指向什么,
//是数组剩下的部分就是说明数组的成员是什么类型。
//解析C语言声明规则:
//从左侧第一个标识符开始,按照优先级进行结合。*表示是..的指针,const表示只读的,volatile表示可变的,[]表示是数组,()表示是函数。 
//
//x和[3]结合说明是一个大小为3的数组,该数组指向了一个指针,该指针指向一个函数,该函数的无参数,返回一个指针,该指针指向一个大小为5的char型数组
#include <stdio.h>
#incl ude <typeinfo.h>
char num[5];
char (*x00())[5] {
    return #
}
int main() {
    char (*x000)[5];//返回值
    char (*(x00)())[5];//函数原型,参数为空,返回值为指针
    char (*(*x0)())[5];//数组的元素,是个函数指针
    char (*(*x[3])())[5];//是个数组,大小为3

    x0 = x00;
    x[0] = x0;
    x[1] = x0;
    x[2] = x0;
    printf("typeid(x).name() is %s\n",typeid(x).name());
    return 0;
}
//typeid(x).name() is char (* (__cdecl**)(void))[5]
计算机组成原理→DOS命令→汇编语言→C语言(不包括C++)、代码书写规范→数据结构、编译原理、操作系统→计算机网络、数据库原理、正则表达式→其它语言(包括C++)、架构…… 对学习编程者的忠告: 眼过千遍不如手过一遍! 书看千行不如手敲一行! 手敲千行不如单步一行! 单步源代码千行不如单步对应汇编一行! VC调试时按Alt+8、Alt+7、Alt+6和Alt+5,打开汇编窗口、堆栈窗口、内存窗口和寄存器窗口看每句C对应的汇编、单步执行并观察相应堆栈、内存和寄存器变化,这样过一遍不就啥都明白了吗。 对VC来说,所谓‘调试时’就是编译连接通过以后,按F10或F11键单步执行一步以后的时候,或者在某行按F9设了断点后按F5执行停在该断点处的时候。 (Turbo C或Borland C用Turbo Debugger调试,Linux或Unix下用GDB调试时,看每句C对应的汇编并单步执行观察相应内存和寄存器变化。) 想要从本质上理解C指针,必须学习汇编以及C和汇编的对应关系。 从汇编的角度理解和学习C语言的指针,原本看似复杂的东西就会变得非常简单! 指针即地址。“地址又是啥?”“只能从汇编语言和计算机组成原理的角度去解释了。” 但我又不得不承认: 有那么些人喜欢或者适合用“先具体再抽象”的方法学习和理解复杂事物; 而另一些人喜欢或者适合用“先抽象再具体”的方法学习和理解复杂事物。 而我本人属前者。 不要企图依赖输出指针相关表达式的值【比如printf("%p\n",...)】来理解指针的本质, 而要依赖调试时的反汇编窗口中的C/C++代码【比如void *p=...】及其对应汇编指令以及内存窗口中的内存地址和内存值来理解指针的本质。 这辈子不看内存地址和内存值;只画链表、指针示意图,画堆栈示意图,画各种示意图,甚至自己没画过而只看过书上的图……能从本质上理解指针、理解函数参数传递吗?本人深表怀疑! 这辈子不种麦不收麦不将麦粒拿去磨面;只吃馒头、吃面条、吃面包、……甚至从没看过别人怎么蒸馒头,压面条,烤面包,……能从本质上理解面粉、理解面食吗?本人深表怀疑!! 提醒: “学习用汇编语言写程序” 和 “VC调试(TC或BC用TD调试)时按Alt+8、Alt+7、Alt+6和Alt+5,打开汇编窗口、堆栈窗口、内存窗口和寄存器窗口看每句C对应的汇编、单步执行并观察相应堆栈、内存和寄存器变化,这样过一遍不就啥都明白了吗。 (Linux或Unix下可以在用GDB调试时,看每句C对应的汇编并单步执行观察相应内存和寄存器变化。) 想要从本质上理解C指针,必须学习C和汇编的对应关系。” 不是一回事! 不要迷信书、考题、老师、回帖; 要迷信CPU、编译器、调试器、运行结果。 并请结合“盲人摸太阳”和“驾船出海时一定只带一个指南针。”加以理解。 任何理论、权威、传说、真理、标准、解释、想象、知识……都比不上摆在眼前的事实! 有人说一套做一套,你相信他说的还是相信他做的? 其实严格来说这个世界上古往今来所有人都是说一套做一套,不是吗? 不要写连自己也预测不了结果的代码! 电脑内存或文件内容只是一个一维二进制字节数组及其对应的二进制地址; 人脑才将电脑内存或文件内容中的这个一维二进制字节数组及其对应的二进制地址的某些部分看成是整数、有符号数/无符号数、浮点数、复数、英文字母、阿拉伯数字、中文/韩文/法文……字符/字符串、汇编指令、函数、函数参数、堆、栈、数组、指针、数组指针、指针数组、数组的数组、指针的指针、二维数组、字符点阵、字符笔画的坐标、黑白二值图片、灰度图片、彩色图片、录音、视频、指纹信息、身份证信息…… 十字链表交换任意两个节点C源代码(C指针应用终极挑战)http://download.csdn.net/detail/zhao4zhong1/5532495
而这位未定义行为大师,一直以来都在对着一匹鹿高呼:上帝啊!终于让我发现一只身上有大园花印的大肥马了!!![/quote] +1
神农氏 2014-01-24
  • 打赏
  • 举报
回复
引用 41 楼 supermegaboy 的回复:
[quote=引用 34 楼 mmns 的回复:] [quote=引用 15 楼 supermegaboy 的回复:] [quote=引用 3 楼 mmns 的回复:] 虽然很多人都说这本书不好,但我却不这么觉得。在上世纪90年代初计算机书籍缺乏的时候,它带我走进了C语言的世界,直到今日,我的日常工作都是使用C语言。每次翻看都百感交集。
这只能说明一点:你的C没有获得进步。[/quote] 非常感谢您老人家给的批评指定。 从1999年开始到现在一直在做C语言的工作,现在是公司的构架师,主要工作领域是做高精度与高动态性卫星信号接收机,主要的用的语言就是C,上位机工具都用C++,真是是很久没来CSDN了,今年这两个月上来看了看,发现真的是大神辈出啊,特别是C语言方面的大神,这里膜拜一下。[/quote] 谈起工作,其实我公司的工作与你这个行业有一定的关联性,一定程度上是你这个行业的用户,你这个行业为我们服务,而我们则为政府和人民服务。你99年开始用C,到现在都有14年了,是个完全的老手了,应用上积累了相当多的经验。如果从我真正开始使用C/C++的时候算起(不算大学那个阶段),你用C的时间比我还要多几年,资历上我要尊称你一声前辈。但是,从一个14年的老手口里,一句“每次翻看都百感交集”却让人不得不想到,是否在语言的修炼上忽略了些什么呢? 初学者看谭教授的书,大赞好书,这不奇怪,初学者是无辨识能力的,你指着一只鹿告诉初学者,它叫马,初学者就会认为那是一匹马。但对于一个老手,不要说14年,即使只有几年,再回过头看谭教授的书,好歹都应该看得出一些问题了吧。我这里给你看一个链接,虽然我对链接中那个人的行为并不完全赞同,但至少可以让你对谭书出现的问题有个观感。 http://bbs.chinaunix.net/thread-1686753-1-2.html 为什么有这么多人指责谭书的错误?是因为谭教授的书容不得有错,谭叫兽、谭叫瘦、谭叫肥的书可以有错,但你谭教授的书就是不能有错,这与谭教授的水平无关,而是因为这书几千万的销量,即使书中出现一个小错,都会通过这个销量无限放大。书的质量要对得起销量,为什么几乎无人谈论《c++ primer》有错?两本书的差距实在太大了。[/quote] 我觉得你想多了,每次翻看这本书就百感交集,更多的出于感情因素,就像你的启蒙老师可能水平没那么高,但依旧能让你尊重, 另外说一句,这本书没你说的那么糟,一个问题有很多种理解方式,你可以说你的理解更高,但没必要非要把别的理解方式都说成是垃圾,你让C语言之父来告诉你指针是什么,他能告诉你的答案也只有一个:地址变量。白马难道非马吗。你骂这本书的时候,你知道有多少高手的第一本入门书都是这本书吗。按你的说法几千万的销量应该造成很坏的影响了才对,事实不是吧,没见谁看这本书看傻了,或者看这本书造成了什么不可逆的坏影响吧,相反很多高手都是从这本书开始学C的。 我这个岁数实在是不愿与人辩论了,今天算个特例。但我想我们不管是从治学也好,从做人也好,是否应该谦虚一点。
赵4老师 2014-01-23
  • 打赏
  • 举报
回复
我用DNA的4种碱基对来理解所有生命。
guzhijie1981 2014-01-23
  • 打赏
  • 举报
回复
引用 15 楼 supermegaboy 的回复:
[quote=引用 3 楼 mmns 的回复:] 虽然很多人都说这本书不好,但我却不这么觉得。在上世纪90年代初计算机书籍缺乏的时候,它带我走进了C语言的世界,直到今日,我的日常工作都是使用C语言。每次翻看都百感交集。
这只能说明一点:你的C没有获得进步。[/quote] 哈哈
了沵 2014-01-22
  • 打赏
  • 举报
回复
<The C Programming Language>Brian W.Kernighan,Dennis M.Ritchie觉得这本做教材不错
飞天御剑流 2014-01-20
  • 打赏
  • 举报
回复
引用 44 楼 lwouyang 的回复:
引用 43 楼 l1095260368 的回复:
[quote=引用 21 楼 supermegaboy 的回复:] [quote=引用 19 楼 l1095260368 的回复:] [quote=引用 14 楼 supermegaboy 的回复:] [quote=引用 6 楼 u011530143 的回复:] [quote=引用 2 楼 u010653211 的回复:] 我就是看这本教材入门的
老谭的书还是不错的,特别事指针,讲得那个深度还是足够应付工作了。
谭叫兽不过是以为自己写的是指针而已,而你也不过是以为自己看的是指针而已。[/quote] 看了下那书的指针部分。没什么不对啊,是我指针思想浅薄了吗? [/quote] 那你说说,你看了谭教授的书后,你认为什么是指针。[/quote] 指针是地址?[/quote] 又一个受害者。 C 设计之初确实是从方便实用角度用指针这个概念来包装了一个个地址值,也确保了 C 语义的精简度。复杂组织大都借助指针来构造。确实,什么样的程序最后编译汇编后不都得回归到机器指令的寻址。但若将高级语言的许多语义的本质都理解为地址,则这些高级语言都不复存在了。你用机器语言的思想去编程?[/quote]
lwouyang 2014-01-20
  • 打赏
  • 举报
回复
引用 43 楼 l1095260368 的回复:
引用 21 楼 supermegaboy 的回复:
[quote=引用 19 楼 l1095260368 的回复:] [quote=引用 14 楼 supermegaboy 的回复:] [quote=引用 6 楼 u011530143 的回复:] [quote=引用 2 楼 u010653211 的回复:] 我就是看这本教材入门的
老谭的书还是不错的,特别事指针,讲得那个深度还是足够应付工作了。
谭叫兽不过是以为自己写的是指针而已,而你也不过是以为自己看的是指针而已。[/quote] 看了下那书的指针部分。没什么不对啊,是我指针思想浅薄了吗? [/quote] 那你说说,你看了谭教授的书后,你认为什么是指针。[/quote] 指针是地址?[/quote] 又一个受害者。 C 设计之初确实是从方便实用角度用指针这个概念来包装了一个个地址值,也确保了 C 语义的精简度。复杂组织大都借助指针来构造。确实,什么样的程序最后编译汇编后不都得回归到机器指令的寻址。但若将高级语言的许多语义的本质都理解为地址,则这些高级语言都不复存在了。你用机器语言的思想去编程?
MuteCoder 2014-01-20
  • 打赏
  • 举报
回复
引用 21 楼 supermegaboy 的回复:
引用 19 楼 l1095260368 的回复:
[quote=引用 14 楼 supermegaboy 的回复:] [quote=引用 6 楼 u011530143 的回复:] [quote=引用 2 楼 u010653211 的回复:] 我就是看这本教材入门的
老谭的书还是不错的,特别事指针,讲得那个深度还是足够应付工作了。
谭叫兽不过是以为自己写的是指针而已,而你也不过是以为自己看的是指针而已。[/quote] 看了下那书的指针部分。没什么不对啊,是我指针思想浅薄了吗? [/quote] 那你说说,你看了谭教授的书后,你认为什么是指针。[/quote] 指针是地址?
百曉生 2014-01-20
  • 打赏
  • 举报
回复
依我看,谭教授的书还是可以的啊,虽然有一些小问题,代码格式也不太标准,但对相关知识的普及的确有不小的贡献
飞天御剑流 2014-01-19
  • 打赏
  • 举报
回复
引用 34 楼 mmns 的回复:
[quote=引用 15 楼 supermegaboy 的回复:] [quote=引用 3 楼 mmns 的回复:] 虽然很多人都说这本书不好,但我却不这么觉得。在上世纪90年代初计算机书籍缺乏的时候,它带我走进了C语言的世界,直到今日,我的日常工作都是使用C语言。每次翻看都百感交集。
这只能说明一点:你的C没有获得进步。[/quote] 非常感谢您老人家给的批评指定。 从1999年开始到现在一直在做C语言的工作,现在是公司的构架师,主要工作领域是做高精度与高动态性卫星信号接收机,主要的用的语言就是C,上位机工具都用C++,真是是很久没来CSDN了,今年这两个月上来看了看,发现真的是大神辈出啊,特别是C语言方面的大神,这里膜拜一下。[/quote] 谈起工作,其实我公司的工作与你这个行业有一定的关联性,一定程度上是你这个行业的用户,你这个行业为我们服务,而我们则为政府和人民服务。你99年开始用C,到现在都有14年了,是个完全的老手了,应用上积累了相当多的经验。如果从我真正开始使用C/C++的时候算起(不算大学那个阶段),你用C的时间比我还要多几年,资历上我要尊称你一声前辈。但是,从一个14年的老手口里,一句“每次翻看都百感交集”却让人不得不想到,是否在语言的修炼上忽略了些什么呢? 初学者看谭教授的书,大赞好书,这不奇怪,初学者是无辨识能力的,你指着一只鹿告诉初学者,它叫马,初学者就会认为那是一匹马。但对于一个老手,不要说14年,即使只有几年,再回过头看谭教授的书,好歹都应该看得出一些问题了吧。我这里给你看一个链接,虽然我对链接中那个人的行为并不完全赞同,但至少可以让你对谭书出现的问题有个观感。 http://bbs.chinaunix.net/thread-1686753-1-2.html 为什么有这么多人指责谭书的错误?是因为谭教授的书容不得有错,谭叫兽、谭叫瘦、谭叫肥的书可以有错,但你谭教授的书就是不能有错,这与谭教授的水平无关,而是因为这书几千万的销量,即使书中出现一个小错,都会通过这个销量无限放大。书的质量要对得起销量,为什么几乎无人谈论《c++ primer》有错?两本书的差距实在太大了。
unmapped 2014-01-19
  • 打赏
  • 举报
回复
要说,学究式地认真出版,清华大学出版社,随便抓几个壮丁来,就能修正谭浩强的书的错误了。 谭浩强,那年代的过来人,老谋深算了。看着长江后浪推前浪似地,都来挑谭浩强的错,他背后笑了。“人家英语老师拼命让学生做英语句子改错题,想提高学生英语水平,难啊。老谭一出手,无数人,主动挑错,挑毛病挑着挑着,学生主动地提高了自己的水平”
unmapped 2014-01-19
  • 打赏
  • 举报
回复
有时候,老人家,故意卖个错误, 是迎合年轻人挑毛病的习惯,多少学生为了挑错而一头扎进去C语言.
unmapped 2014-01-19
  • 打赏
  • 举报
回复
引用 36 楼 u013344873 的回复:
空间和时间的局限性。 q = f(空间xyz,时间t,其它参数)... ∂q/∂t ≠ 常数 一个现象,不同的空间地方,时间,环境背景,个人背景,自然有不同的结论... 今天,洋人的书,国产的书,多如牛毛的背景下,又或者评论者已不再是对计算机一无所知的状态下,又或者..... 在当年,有几台电脑,有几本书? 今天,毛都没长齐的孩子,恐怕都能玩python了。当年,人家娃都能上街打酱油了,娃他爹还没玩过电脑。 谭浩强的书,面向的是谁? 恐怕不是软件学院或者计算机系, 而是广大的,工科必修课C语言(这类人,根本就没打算用C语言或者说IT来作为主业。) 面对水平参差不齐,有些可能是大学才第一次接触计算机。 如何能写本更经得起考验的教科书?
其读者,本来就是为了拿两三个学分的《必修C语言》... 如果充满高级的学究式的内容,想来会是挂科一片,骂声一片...可能其结果,会向必修的《军事理论》一样,一点收获都没有
lwouyang 2014-01-19
  • 打赏
  • 举报
回复
不否认这本书曾经起到的启蒙作用。就像没饭吃时啃窝窝头都觉得挺香。 批评这边书是因为其品质不高,代码和思路质量粗滥。就像喝吃惯了鲜鱼嫩肉,面对馒头如何下咽? 要知道作为教育,特别是启蒙,传授落伍或者错误知识的毒害作用其后果有多严重。一个人得长到多大才明白“哦,原来我不是从垃圾堆里捡来的。” 不知道是此书的作者不在意不愿意,还是有心无力,都出了这么多版了没见改善。想想,那些真正写了本好书的人是多么的了不起和不容易。
unmapped 2014-01-19
  • 打赏
  • 举报
回复
空间和时间的局限性。 q = f(空间xyz,时间t,其它参数)... ∂q/∂t ≠ 常数 一个现象,不同的空间地方,时间,环境背景,个人背景,自然有不同的结论... 今天,洋人的书,国产的书,多如牛毛的背景下,又或者评论者已不再是对计算机一无所知的状态下,又或者..... 在当年,有几台电脑,有几本书? 今天,毛都没长齐的孩子,恐怕都能玩python了。当年,人家娃都能上街打酱油了,娃他爹还没玩过电脑。 谭浩强的书,面向的是谁? 恐怕不是软件学院或者计算机系, 而是广大的,工科必修课C语言(这类人,根本就没打算用C语言或者说IT来作为主业。) 面对水平参差不齐,有些可能是大学才第一次接触计算机。 如何能写本更经得起考验的教科书?
神农氏 2014-01-19
  • 打赏
  • 举报
回复
真心膜拜大牛的同时,还是觉得纳闷,为啥这么多人都说老谭的那本书不好呢,我是真心不觉得,我是94年上的大学,那时候我能买到的C语言的书只有这本,记得95年我的一个外地同学还专门让我在北京买了一本寄给他,他现在在Intel。我本人是学完汇编以后自己用这本书学的C语言,真是觉得没啥问题啊,几天就看完了,就开始用这个写东西了,而且我认识的几个技术不错的岁数差不多的哥们,也没见谁说这本书垃圾,顶多也就是说这书不太全面,但给入门的人看还是不错的,是我自己太怀旧了还是现在优秀的书太多了。
神农氏 2014-01-19
  • 打赏
  • 举报
回复
引用 15 楼 supermegaboy 的回复:
[quote=引用 3 楼 mmns 的回复:] 虽然很多人都说这本书不好,但我却不这么觉得。在上世纪90年代初计算机书籍缺乏的时候,它带我走进了C语言的世界,直到今日,我的日常工作都是使用C语言。每次翻看都百感交集。
这只能说明一点:你的C没有获得进步。[/quote] 非常感谢您老人家给的批评指定。 从1999年开始到现在一直在做C语言的工作,现在是公司的构架师,主要工作领域是做高精度与高动态性卫星信号接收机,主要的用的语言就是C,上位机工具都用C++,真是是很久没来CSDN了,今年这两个月上来看了看,发现真的是大神辈出啊,特别是C语言方面的大神,这里膜拜一下。
赵4老师 2014-01-17
  • 打赏
  • 举报
回复
Hugo801122 2014-01-17
  • 打赏
  • 举报
回复
引用 11 楼 Adol1111 的回复:
引用 6 楼 u011530143 的回复:
[quote=引用 2 楼 u010653211 的回复:] 我就是看这本教材入门的
老谭的书还是不错的,特别事指针,讲得那个深度还是足够应付工作了。
请问楼主是做什么工作的?[/quote]我以前是程序员,现在跑鞋客户,也偶尔写点demo吧,搞嵌入式消费类电子。
Adol1111 2014-01-16
  • 打赏
  • 举报
回复
引用 6 楼 u011530143 的回复:
引用 2 楼 u010653211 的回复:
我就是看这本教材入门的
老谭的书还是不错的,特别事指针,讲得那个深度还是足够应付工作了。
请问楼主是做什么工作的?
加载更多回复(30)

70,020

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧