如果你是一个完完全全的编程新手,本书不适合于你---- 你应该先看一本国内的C语言教材,他们虽然泛泛而谈,但至少可以让你了解具备一点最基本的C语言知识,而且不会让你感到太困难---比如潭老师的书(虽然被很多人唾弃)---何况国内的作者最适合写计算机方面泛泛而谈的书籍..呵呵。
如果你已经看过1到2本最基础的C教材了,并且编写的C代码至少大于200行以上(不可能再少了吧.. 即便只做课本练习,你编写的C代码数量也不可能比200行还少吧),那么你应该立刻停止阅读手边其他的任何一本C语言教材,来认真学习这本C语言的圣经!
你有必要而且完全应当认真做好它的每一个练习,即便全书的第一个程序 -- 看起来是那么的简单 --- 你也应当开始认真的去做。
可能你会象我一样,有了一些程序设计经验,初读它时,会觉得那么的简单,在不经意间就翻过了几章 --- 但是,请你也应该象我一样--- 停下来,从头开始读起,并且认真的做好练习,仔细体会K&R的每一句话。如果你足够认真的话,你会发现虽然他们写的是C语言的教材,但是字里行间却时时闪烁着他们关于编程的精彩指导---- 比如在函数那一章---前提是你足够的认真和用心,还要有一定的‘对语言的敏感和洞察力’。
好句
几年后重新审视,发现这之前认为的不是太适合入门的看法是完全错误的,现在反而认为是最好的入门书(没有之一),前提是阅读的人要满足3个条件:1、不是太笨(能够正常高中毕业)2、有耐心 3、认真做完所有习题
大二的时候认真学过C++,基本语法过关,后学习matlab做过一些小项目、搞过一段时间ACM训练,玩过单片机。现在大三,决定走软件方向,一年之后找工作。由于非计算机相关专业,基础知识欠缺,故想高效率补充计算机体系知识。刚看完《计算机科学概论》,现在看C语言之父dennis联合编写的《The c progamming language》,发现讲解比较全面有深度,底层的细节比较多,有些地方还不理解。
有些问题查半天资料未必找到答案,或许即时交流,一句话就搞明白了!诚邀正在学习C语言的朋友加群一起交流学习,最好是正在看这本书的。 学习之路一起走会更快~
群号码:498904811
我表示看老谭的书看的很模糊,老谭老在叫C的第一句式谝译,就是很生硬的学语言,但是我表示很不理解。主要是为什么要这样定义,定义的数值如何得来这些我被已经固话C语言的定义带来生硬敢,太难理解,为什么这么定义数据为何这样,这些我都不懂但是这这么定义了叫你这么就是这么只给结果不给解析,很难理解。
开玩笑,固然这本不适合完全没有一点编程基础的新手,可谭浩强的书就.....里面太多思想问题,你让新手看谭浩强的书,到时候把他们的概念给带成“谭式”的就为后期学习造成了很多的麻烦了好不的说!
嗯!个人也觉得这本书比起国内的教材好了,这本书上的例子就是多,而且实用性好!不过我现在疑惑呢?不知道怎么去看这本书:书上的例题借助网上的资源还是能看懂的!但是要我去自己去做题就不会做!怎么办!求助!
大一的时候,自学过谭浩强的c语言教材,当时,觉得谭老师写的书写的挺好的,现在再回头来看看他写的书籍,确实....,现在一直在用c#,想重温c语言的精华~
对语言的敏感和洞察力,看书快的人都是没有品位家伙 ,这样的人不会成为大师,看了tron我很受感动 ,但由于人类自私的劣根,我们距离这个神奇的虚拟王国还很遥远,因为大部分程序员所知甚少,计算机绝对是人类创造的,但现在的人类离计算机越来越“远”,人们开始对其预料之外的现象感到陌生与困惑还有茫然不解,原因就是为什么我们对于想要知道的细节还要用猜的,这就是人类进化的瓶颈,人们用崇敬的心情去认识理解大自然,但我们却因为同类的藏私而深陷泥晫,我们很渺小,我们现在做不到什么,但可以做的是 剔万卷之废言统其标的,提其精髓,绘而成卷布于世人,使后世学者不再怠罔而废。
每行代码都应该有它的原因。 虽然这是文艺的豆瓣。 :)
你的解释还是没有到点子上,帮你补充一下
EOF是一个整型常量,它经常在文件和流的处理函数的返回值判断里代表一个文件读取完毕或者有错误发生的时候的状态,它真正的值实际上是没有在 ANSI C 标准里给出,但是应该是负数。
好,再看getchar()做了什么,它读取了你输入的每个字符,然后返回了这个字符的ASCII值,在这段代码里,我们把这个返回的值赋给了一个整形。如果这个值等于EOF定义的值的话,就中止前面的循环。
在你运行程序的时候,windows 是Ctrl + z , UNIX 是 Ctrl + D ,这个意思是发送一个EOF的信号到你在执行的这个进程。然后getchar()捕捉到这个EOF.
于是就输出你的回车行数了。
如果要深究的话,getchar()帮你做了很多事情,当然也有编译起的功劳。但是要深刻的理解为什么一个整形的 c == '\n' 。 那也是不容易的事情。
别瞎说。
getchar是一个包含在stdio的宏,没有参数。 每次调用它时,它读取下一个字符的输入,并返回给你。 该函数返回一个 int,是有关字符的ASCII码,但如果你也可以赋值给到一个 char变量。
#include <stdio.h>
main()
{
int c;
int nl ;
nl = 0;
while ((c = getchar() ) != EOF )
if ( c == '\n' )
nl++;
printf("%d\n",nl);
}
我原样输入,怎么不能执行,我运行平台是visual C++ 6.0
我已经看了好几篇了,每次看完之后都有不少的收获。
在没有学操作系统之前看这本书的时候还是有点模糊,不过学完操作系统之后再读又有一份收获。
里面的很多例子都是与操作系统的一些命令有关的