找回密码
 立即注册
搜索
热搜: 活动 通知
查看: 8381|回复: 3

《穿越C语言的迷雾》即将于2025年底出版

[复制链接]

434

主题

331

回帖

3884

积分

管理员

积分
3884
发表于 2024-10-19 08:32:23 | 显示全部楼层 |阅读模式
本书正在出版流程中,2025年年底可望面市。
请点击下载本书的PDF文件: 穿越C语言的迷雾.pdf (6.84 MB, 下载次数: 377) 。这是初次排版的结果,最终内容和版式以出版后的实体书为准。
请点击下载配书文件包: cfogpkg.7z (2.36 MB, 下载次数: 39) (可能不全,还没有整理好。图书出版后会重新上传正式的文件包)。

以下是本书的前言:--------------------------------------------------------------------->

欢迎选用这本C语言教材!

从上世纪七十年代发明C语言以来,与之相关的图书多如牛毛、汗牛充栋。既然如此,为什么我还要再写一本,给牛增加负担呢?这事说来话长。

我当初是如何学习C语言的呢?印象中,我看的第一本书有着朴素亲和的封面,上面印着一个大的“C”字,但它解释不清stdio.h是什么东西,以及程序开头的# include是在搞什么名堂。我是一个喜欢刨根问底的人,如果从一开始你就整一些暗盒,我也就没兴趣再学下去了,于是我看了几页就将其束之高阁。

接下来我又翻了一下别的C语言图书,发现它们都是一样的。不过,在我胡乱翻书的过程中,对C语言也有了基本的了解。

所以,我并没有认真读过哪一本C语言图书,而是在有了一些简单的经验和基础后,直接从C标准文档学起的。C标准文档的行文确实晦涩,读起来很费劲,但是它精确,能让你豁然开朗、开心、激动、兴奋。

在那个时候,C标准文档的语言部分大约160页,我读完这一部分用了六个月。什么感觉?感觉很通透。后来我又翻了一些C语言图书,它们都有自己的特色,但也有一些共同的特点,比如说,“表达式有值”是一个极其重要的规则,但这些书都没有提到它,也很少从这个角度来分析程序的行为。相比之下,说不清stdio.h是什么东西也就算不上缺点了。

市面上的C语言图书还有另一个特点,那就是它们具有明显的代际传承。第一批C语言图书诞生于C语言标准化之前,具有明显的局限性,对很多语法现象的语义描述不标准、不规范,且术语的使用非常随意,容易引起误解。时光荏苒,它们的读者又成了作者。所以你会发现,现在市面上的C语言图书,绝大多数的祖宗可以追溯到上世纪八、九十年代的那几本书,尽管腔调不同,但只要一开始讲语法,就原形毕露了。

市面上的C语言图书各有特色,很难说孰优孰劣。如果非要说的话,那就是作为一个看惯了C标准文档的人,总觉得它们的内容和语法表述与我想的不一样,也许就是所谓的“我有我的说法”吧。所以你现在明白我为什么要给牛增加负担的原因了吗?表面上看,C是一门简单的计算机语言,容易上手,简单培训一下就可以笨拙地写一些可以运行的代码,但是这并不意味着C语言真的简单。我的愿望就是写一本书,讲清楚C语言的本质,带领初学者穿越C语言的迷雾。至于我的能力够不够,能不能实现这个目标,就靠实践来检验了。具体来说,本书的特点是:

一,零基础、朴实易懂,循序渐进。考虑到本书的很多读者都是大学新生,对计算机的工作原理、软件和硬件的关系、实际的软件开发流程等等都不太了解,一上来就告诉他们如何编程是不行的,会把他们搞蒙,继而失去兴趣。为此,本书是从计算机原理开始的,这和其它C语言图书是不一样的。大道至简,本书行文质朴,直截了当,易于理解。为了使学习过程自然顺滑,我对本书的内容及其顺序做了精心编码,在讲前面的内容时,尽量不使用后面才出现的概念、术语和知识点。

二,内容正确,符合标准。C语言有自己的国际标准,该标准描述和规定了C语言的编译环境、运行环境和编程语法,而本书所讲授的内容都是与标准保持一致的,不会用错误的概念和内容误导学习者,能够帮助他们掌握这门语言的要点和精髓,让他们能够很快掌握并使用这门语言。

三,厚度适中、重点突出、详略得当、方便教学。C语言的细节还是很多的,这从它的国际标准文档里就可以看出来。C语言的标准文档由语言部分和标准库组成,在它的最新标准里,语言部分就有190页。考虑到标准文档的行文言简意赅,晦涩难懂,你就知道它浓缩了多少知识点。如果把每个知识点都解释得明明白白的,再举两个例子,那本书的厚度将是惊人的,没有一千多页是下不来的,而且最终会变成一本枯燥的手册,这同时也导致初学者不知道哪些是重点,哪些只需要了解就行;另一个问题就是无法拿进课堂,这么厚,别说一个学期,几个学期都不够。对于初学者来说,只需要把重要的知识点学明白,掌握这门语言的本质和精髓就行了。至于更多的细节,只在需要的时候慢慢研究就好了,本书的另一个目标就是为你直接看标准文档打一个良好的基础。

看过其它C语言图书的同学会注意到本书没有使用“变量”一词,而这个词是绝大多数编程书籍的标配。那么,为什么本书不使用它呢?

变量是一个广泛使用但却没有标准定义的概念,它到底是什么,没有人能说清楚。给定以下代码片断:
int a, * p = & a;
a = 0;
* p = 65533;
尽管没人能说清到底啥是变量,但学过C语言的人都知道a是个变量。变量最主要的用途就是保存或者读取值,所以上述代码的第二行是把0保存到变量a。再来看上述代码的第三行,这一行是把65533保存到* p。这个* p是啥?是变量吗?我相信多数人就吱吱唔唔说不清楚了。所以我们需要一个新的概念,它能涵盖所有能被赋值的东西,包括变量。标准化之后的C语言只使用标识符、对象和左值这三个核心概念,而不使用变量。本书依从于标准,也不使用变量这个术语。

本书配套的源码、工具、检测点和习题答案请到我的个人网站www.lizhongc.com下载;我的电子邮件地址是leechung@126.com需要特别注意的是书中有很多检测点,它们用来检查学习效果,很重要,不可等闲视之,也不要随意跳过!祝我亲爱的同学们都能早日掌握C语言!

下面这段文字不是乱码,而是用输入法加密的,因为这是一些心里话,我想把它记在书里,但还不太想让别人知道。

2025 rh 11 eee 25 jjjj j wh tgj s r jjjj bb . h tfj ltui nnh ghd aa pfq tym , ntc xwg xyna lkb . gh tfj gmww hko qq , gmww tfk qq wc jfd qh r ftx pe , vc vc ghd d fcl rt sy , ld o mt gd ue vbn edf me me rr ( gqje xyy ) . gn hx m jf , q bn ghd d xwgk ipg rtol pgcf jfd os hw fcl rt sy —— xwg px wu gjq rqmd jn idri sajd fnw. sg go q yid yynw buk d vcg vcg tmd lp r ,wjg p j wh ih rt sy,sks sks veg veg wu ftjb buk d vbn tmd lp,dmj eg q fg fgh qq gd ue mqj lkd ftx pe cde lk wgcf vvvv r vqaj pynn,rn c yi im lkd fcu.wjg jt jq kr q fg veg lfny syp vcg vcg d rt sy ck h r nyng jf ,q tve rg ntx im e lkd fcu .pykq vcg vcg fuf pygl nnw qi ,tmd wsg wvf yvi !sks sks veg veg ey rn e us dhi ee dc wu nynn jfd nynn qh ,nae gm b pwa ue r lft xfk ,dgkn ytmf wb wu r wfy bm !

0

主题

1

回帖

82

积分

至尊会员

积分
82

至尊会员

发表于 2024-10-22 21:32:21 | 显示全部楼层
忠哥,预计2025年5月吧,你这个写的2005年

434

主题

331

回帖

3884

积分

管理员

积分
3884
 楼主| 发表于 2024-10-22 21:36:04 | 显示全部楼层
0xCC 发表于 2024-10-22 21:32
忠哥,预计2025年5月吧,你这个写的2005年

哈哈,写错了。已经纠正。

0

主题

1

回帖

174

积分

至尊会员

积分
174

至尊会员

发表于 2024-12-7 15:56:35 | 显示全部楼层
喜欢老师的穿越迷雾系列!!!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|鼠侠网 ( 吉ICP备19001332号 )

GMT+8, 2025-12-29 14:42 , Processed in 0.262746 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表