再论谭浩强《C语言程序设计》
一些同学学不好C语言,把罪责归于“因为教材是谭浩强写的”实在是很滑稽。 谭浩强老先生 1934 年生,现在已经 80 岁了。他 1958 年从清华大学自动控制系毕业,那年 24 岁。要知道 C 语言那时候都还没诞生,计算机都是大型机,原始又笨重,当时谭浩强学自动化控制这一专业可以说是比较尖端的。光从这一点上,就可以说,他是同时代人里非常非常聪明的那一类人。 现在许多人批评谭浩强的《C 程序设计》的一个重要理由是“不符合C99标准”。但我们要知道 Dennis M. Ritchie 在 1972 年才推出 C 语言的第一个版本(当时谭浩强 38 岁),那时的 C 语言并不成熟。事实上 C 语言的第一次标准化一直到 1989 年才完成(俗称C89),请注意那时候谭浩强已经 55 岁了! 55 岁,你退休了没? 而更重要的是,1989 年那个时候,互联网的发展即使是在全球来看,也是非常非常初级的,更别说国内。因此信息获取的渠道极其狭窄。举个例子大家就能明白,我们现在浏览网页所用的万维网协议,就是在 1989 年那一年,由当时在欧洲粒子物理实验室的Tim Berners-Lee和他的同事一起发明的。 也就是说,一直到谭浩强 55 岁退休的时候,C 语言才刚刚完成了第一版本的标准化,而整个世界的互联网甚至还不支持通过浏览器来浏览! 时间再往后十年,到了 1999 年的时候,C99 标准终于问世。但因为这一标准比较新,大部分编译器还不能支持其中的许多特性。因此大部分沿用的还是 C89 的特性。在这样的背景下,第二年,谭浩强的《C 程序设计》出版了,而这一年,谭浩强已经 66 岁了。 抛开谭浩强 66 岁依然写作这一点不谈,若是站在当时的背景下来看待,事实上这本书也还是可读,可学,有价值的。但软件行业发展飞快,现在高校若继续沿用这一教材,就不合时宜了。 谭浩强的《C 程序设计》这本教材好不好?现在的观点来看当然不好。现在想学习 C 语言的人,不推荐采用他的书。但这主要是因为软件行业发展快速,他的书籍内容较老导致的。我们可以就书论书,但有些不明就里的同学从书出发指责谭浩强“不懂编程,水平低”等等,就是不对的了。
再论谭浩强《C语言程序设计》的更多相关文章
- 挂羊头卖狗肉蓄意欺骗读者——谭浩强《C程序设计(第四版)》中所谓的“按照C99”(二)
挂羊头卖狗肉蓄意欺骗读者——谭浩强<C程序设计(第四版)>中所谓的“按照C99”(二) 在<谭C>p4:“本书的叙述以C99标准为依据”,下面从C89到C99的主要变化方面来看 ...
- 读谭浩强C语言数据结构有感(1)
1.什么是数据结构? 数据结构,就是我们计算机内部的运算,编程语言的基础工作模式吧,个人总结的 = = !! 数据:说简单一点,就是计算机二进制机器码,然后通过一些复杂的操作,变为复杂的语言. 数据元 ...
- NEUQ1051: 谭浩强C语言(第三版)习题6.7
//C代码简直难看到家,求大神知道如何写出复用性好的,维护性强的代码... //格式错误了好几次,最后发现是are和数字之间多了个空格......本来一直以为是最后的换行多了,费劲搞掉了. #incl ...
- NEUQ1055谭浩强C语言(第三版)习题6.11
//迭代公式不是很理解,写出来算了.. #include <stdio.h> #include <math.h> int main() { double x0,x1; int ...
- NEUQ1038: 谭浩强C语言(第三版)习题4.8
之前没做对的一道题,今天集中清理一下. //------------------- 很水的题,主要是 %.2lf 不能四舍五入,需要仅保留两位小数,用了丑陋的强制类型转换... //--------- ...
- 谭浩强C语言第四版第九章课后习题7--9题(建立,输出,删除,插入链表处理)
#include<stdio.h> #include<stdlib.h> #define N sizeof(link) typedef struct stu { struct ...
- c++面向对象程序设计 谭浩强 第一章答案
c++面向对象程序设计 谭浩强 答案 第一章 目录: c++面向对象程序设计 谭浩强 答案 第一章 c++面向对象程序设计 谭浩强 答案 第二章 c++面向对象程序设计 谭浩强 答案 第三章 c++面 ...
- 从谭浩强的《C语言程序设计》到《电容应用分析精粹》
不记得具体从什么时候开始(反正很多年前的事了)的,不少人都陆续批评过谭浩强的<C语言程序设计>,各方面都有扒过.例如,与实践脱节,很多例子在不同编译器上运行是错误的,代码风格糟糕等等方面. ...
- C语言学习笔记---谭浩强
前段时间有机会去面试了一次,真是备受“打击”(其实是启发),总的来说就是让我意识到了学习工具和学习技术的区别.所以最近在看一些数据结构和算法,操作系统,python中的并行编程与异步编程等东西.然而数 ...
随机推荐
- AspectRatio图片的宽高比、Card 卡片组件
一.AspectRatio 组件 AspectRatio 的作用是根据设置调整子元素 child 的宽高比. AspectRatio 首先会在布局限制条件允许的范围内尽可能的扩展,widget 的高度 ...
- 外置ADC
美信关于如何简化微控制器与温度传感器的接口设计?: 一般外置ADC与单片机UC之间通过SPI或SMBUS接口通信 当IO口比较紧张时可以选择脉冲或频率方波正比与测量值输出的外置ADC,此时也可以实现光 ...
- 基于SILVACO ATLAS的a-IGZO薄膜晶体管二维器件仿真(08)
进展比较慢啊... 根据江南大学硕士论文IGZO/IZO双有源层薄膜晶体管特性的模拟研究: 其中, gCBa:类受主导带尾态 gVBd:类施主价带尾态 gGd:类施主氧空位态 NDeep:价带尾深施主 ...
- SVG和canvas的区别
1.Canvas 是用JavaScript 操作动态生成的, SVG 则是使用XML静态描述生成的; 2.Canvas 基于位图,简单来说就是图片放大会影响到显示的效果,造成不好的影响,SVG 基于矢 ...
- Vue-状态管理Vuex的使用
vuex是状态管理,是为了解决跨组件之间数据共享问题的,一个组件的数据变化会映射到使用这个数据的其他组件当中.如果刷新页面,之前存储的vuex数据全部都会被初始化掉.以一个全局单例模式管理当应用遇到多 ...
- 【代码学习】PYTHON中的静态方法和类方法
一.类方法 是类对象所拥有的方法,需要用修饰器@classmethod来标识其为类方法,对于类方法,第一个参数必须是类对象,一般以cls作为第一个参数(当然可以用其他名称的变量作为其第一个参数,但是大 ...
- tkinter学习(3)scale尺度条和menu菜单
1.scale学习(尺度条)1.1 代码: #第1步:导出模块 import tkinter as tk #第2步:定义窗口,及其标题.大小和位置 win = tk.Tk() win.title('s ...
- 【转】uWSGI+django+nginx的工作原理流程与部署历程
一.前言献给和我一样懵懂中不断汲取知识,进步的人们. 霓虹闪烁,但人们真正需要的,只是一个可以照亮前路的烛光 二.必要的前提 2.1 准备知识 1.django 一个基于python的开源web框架, ...
- JAVAWeb问题总结(持续更新)
1.在JSP页面头部,出现如下错误: 错误文本: Multiple annotations found at this line: - The superclass "javax.servl ...
- 字符流---Day32
时隔多久,我又回来写博客了,最近忙于两个课设,五周,搞得头发都不知道掉了多少根了,还没成为程序员就开始掉了,等我成为一名程序员的时候岂不是要秃头了,IT界的人会不会帮我当成大佬了,哈哈哈哈,希望我以后 ...