网页
资讯
贴吧
知道
视频
音乐
图片
地图
文库
进入贴吧
全吧搜索
吧内搜索
吧内搜索
搜贴
搜人
进吧
搜标签
日
一
二
三
四
五
六
签到排名:今日本吧第
个签到,
本吧因你更精彩,明天继续来努力!
本吧签到人数:0
一键签到
成为超级会员,使用一键签到
一键签到
本月漏签
0
次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行
补签
。
连续签到:
天 累计签到:
天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
04月15日
漏签
0
天
网络技术吧
关注:
282,455
贴子:
659,389
看贴
图片
精品
视频
游戏
1
2
3
4
5
6
7
下一页
尾页
196
回复贴,共
7
页
,跳到
页
确定
<<返回网络技术吧
>0< 加载中...
笨办法学C语言
只看楼主
收藏
回复
colinLXP
如雷贯耳
11
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
课程前言:
这本C语言入门书也将采用习题方式引导读者学习。
colinLXP
如雷贯耳
11
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
在序言中,他引用了笛卡尔《第一哲学沉思录》中的一段话去描述C语言: “直到现在,凡是我当作最真实、最可靠而接受过来的东西,我都是从感官或通过感官得来的。不过,我有时觉得这些感官是骗人的;为了小心谨慎起见,对于一经 骗过我 们的东西就决不完全加以信任。”
Zed Shaw说,C语言是“红色药丸”,是真理。
colinLXP
如雷贯耳
11
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
这是本书创作中的转储版本,所用的措辞可能不是很好,也可能缺失了一些章节,但是你可以看到我编写这本书的过程,以及我的做事风格。
colinLXP
如雷贯耳
11
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
常见问题
这门课程需要多少时间?
你应该花一些时间直到你掌握它,并且每天都要坚持编写代码。一些人花了大约三个月,其它人花了六个月,还有一些人只用了一个星期。
我需要准备什么样的电脑?
你需要OSX或者Linux来完成这本书。
colinLXP
如雷贯耳
11
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
colinLXP
如雷贯耳
11
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
引言:C的笛卡尔之梦
直到现在,凡是我当作最真实、最可靠而接受的东西,都是从感官或通过感官得来的。不过,我有时觉得这些感官是骗人的,并且为了小心谨慎起见,对于一经骗过我们的东西就决不完全加以信任。
-勒内·笛卡尔,《第一哲学沉思录》
colinLXP
如雷贯耳
11
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
如果有一段引述用来描述C语言编程的话,那就是它了。对于大多数程序员,C是极其可怕而且邪恶的。他就像是恶魔、撒旦,或者一个使用指针的花言巧语和对机器的直接访问来破坏你生产力的骗子洛基。于是,一旦这位计算界的路西法将你缠住,他就会使用邪恶的“段错误”来毁掉你的世界,并且揭露出与你交易中的骗局而嘲笑你。
colinLXP
如雷贯耳
11
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
然而,C并不应由于这些事实而受到责备。你的电脑和控制它的操作系统才是真正的骗子,而不是朋友。它们通过密谋来向你隐藏它们的真实执行逻辑,使你永远都不真正知道背后发生了什么。C编程语言的失败之处只是向你提供接触背后真正工作原理的途径,并且告诉了你一些难以接受的事实。C会向你展示痛苦的真像(红色药丸),它将幕布拉开来向你展示一些神奇的原理。C即是真理。
colinLXP
如雷贯耳
11
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
既然C如此危险,为什么还要使用它?因为C给了你力量来穿越抽象的假象,并且将你从愚昧中解放出来。
colinLXP
如雷贯耳
11
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
colinLXP
如雷贯耳
11
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
如何阅读本书
这本书为那些已经掌握至少一门编程语言的人而设计。如果你还没有接触过编程,我推荐你先学习笨办法学Python,这本书适用于真正的新手并且适合作为第一本编程书。一旦你学会了Python,你可以返回来开始学习这本书。
colinLXP
如雷贯耳
11
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
对于那些已经学会编程的人,这本书的开头可能有些奇怪。它不像其它书一样,那些书中你会阅读一段段的文字然后编写一些代码。相反,这本书中我会让你立即开始编程,之后我会解释你做了什么。这样更有效果,因为你已经经历过的事情解释起来更加容易。
colinLXP
如雷贯耳
11
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
由于采用了这样的结构,下面是本书中你必须遵守的规则:
手动输入所有代码。不要复制粘贴!
正确地输入所有代码,也包括注释。
运行代码并保证产生相同的输出。
如果出现了bug则修正它。
做附加题时,如果你做不出某道题,马上跳过。
在寻求帮助之前首先试着自己弄懂。
如果你遵守了这些规则,完成了本书的每一件事,并且还不会编程C代码的话,你至少尝试过了。它并不适用于每个人,但是尝试的过程会让你成为一个更好的程序员。
colinLXP
如雷贯耳
11
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
核心能力
我假设你之前使用为“弱者”设计的语言。这些“易用的”语言之一是Python或者Ruby,它们带给了你草率的思维和半吊子的黑魔法。或者,你可能使用类似Lisp的语言,它假设计算机是纯函数式的奇幻大陆,带有一些为婴儿准备的充气墙。再或者你可能学过Prolog,于是你认为整个世界都是一个数据库,你可以从中寻找线索。甚至更糟糕的是,我假设你一直都在用IDE,所以你的大脑布满了内存漏洞,并且你每打三个字符都要按CTRL+空格来打出函数的整个名字。
无论你的背景如何,你都可能不擅长下面四个技能:
colinLXP
如雷贯耳
11
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
阅读和编写
如果你使用IDE这会尤其正确。但是总体上我发现程序员做了很多“略读”,并且在理解上存在问题。它们会略读需要详细理解的代码,并且觉得他们已经理解了但事实上没有。其它语言提供了可以让他们避免实际编写任何代码的工具,所以面对一种类似C的语言时,他们就玩完了。你需要知道每个人都有这个问题,并且你可以通过强迫自己慢下来并且仔细对待阅读和编写代码来改正它。一开始你可能感到痛苦和无聊,但是这样的次数多了它也就变得容易了。
colinLXP
如雷贯耳
11
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
专注细节
每个人都不擅长这方面,它也是劣质软件的罪魁祸首。其它语言让你不会集中注意力,但是C要求你集中全部注意力,因为它直接在机器上运行,并且机器比较挑剔。C中没有“相似的类型”或者“足够接近”,所以你需要注意,再三检查你的代码,并假设你写的任何代码都是错的,直到你能证明它是对的。
colinLXP
如雷贯耳
11
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
定位差异
其它语言程序员的一个关键问题就是他们的大脑被训练来指出那个语言的差异,而不是C。当你对比你的代码和我练习中的代码时,你的眼睛会跳过你认为不重要或者不熟悉的字符。我会给你一些策略来强制你观察你的错误,但是要记住如果你的代码并不完全像书中的代码,它就是错的。
colinLXP
如雷贯耳
11
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
规划和调试
我喜欢其它较简单的语言,因为我可以想怎么写就怎么写。我将已有的想法输入进解释器,然后可以立即看到结果。你可以把你的想法试验出来,但是要注意,如果你仍然打算“试验代码使其能够工作”,它就行不通了。C对于你来说稍困难,因为你需要规划好首先创建什么。的确,你也可以进行试验,但是比起其他语言,你必须在C中更早地严肃对待代码。我会教给你在编程之前规划程序核心部分的方法,这对于使你成为更好的程序员十分有帮助。即使一个很小的规划,都会使接下来的事情变得顺利。
colinLXP
如雷贯耳
11
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
colinLXP
如雷贯耳
11
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
C比其它语言都要难,而这是由于C并不对你隐藏细节,它们在其它语言中都试图并且未能被掩盖。
colinLXP
如雷贯耳
11
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
练习0:准备
在这一章中,你将为C语言编程配置好你的系统。一个好消息是对于所有使用Linux或者Mac的人,你的系统是为C语言编程而设计的。C语言的创造者也对Unix操作系统的创造做出了贡献,并且Linux和OSX都是基于Unix的。事实上,安装工作会非常简单。
colinLXP
如雷贯耳
11
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
对于Windows上的用户,我有一个坏消息:在Windows上学习C非常痛苦。你可以在Windows上编写C代码,这并不是问题。问题是所有的库、函数和工具都和其它的C语言环境有些差异。C来自于Unix,并且和Unix平台配合得比较好。恐怕这是一个你并不能接受的事实。
colinLXP
如雷贯耳
11
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
然而你并不需要为此恐慌。我并不是说要完全避免Windows。然而我说的是,如果你打算以最短的时间来学习C,你需要接触Unix并适应它。这同时也对你有帮助,因为懂得一些Unix的知识,也会让你懂得一些C编程的习惯,以及扩充你的技能。
colinLXP
如雷贯耳
11
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
这也意味着每个人都需要使用命令行。嗯,就是这样。你将会进入命令行并且键入一些命令。不要为此感到害怕,因为我会告诉你要键入什么,以及结果应该是什么样子,所以你实际上会学到很多东西,同时扩充自己的技能。
colinLXP
如雷贯耳
11
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
Linux
在多数Linux系统上你都需要安装一些包。对于基于Debian的系统,例如Ubuntu你需要使用下列命令来安装一些东西:
$ sudo apt-get install build-essential
colinLXP
如雷贯耳
11
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
上面是命令行提示符的一个示例。你需要接触到能输入它的地方,找到你的“终端”程序并且运行它。接着,你会看到一个类似于$的Shell提示符,并且你可以在里面键入命令。不要键入$,而是它后面的东西。
colinLXP
如雷贯耳
11
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
下面是在基于RPM的Linux系统,例如Fedora中执行相同安装工作的方法:
$ su -c "yum groupinstall development-tools"
一旦你运行了它,它会正常工作,你应该能够做本书的第一个练习。如果不能请告诉我。
colinLXP
如雷贯耳
11
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
Mac OSX
在 Mac OSX上,安装工作会更简单。首先,你需要从苹果官网下载最新的XCode,或者找到你的安装DVD并从中安装。需要下载的文件很大,要花费很长时间,所以我推荐你从DVD安装。同时,上网搜索“安装xcode”来指导你来安装它。
colinLXP
如雷贯耳
11
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
一旦你安装完XCode,可能需要重启你的电脑。你可以找到你的终端程序并且将它放到快捷启动栏中。在本书中你会经常用到终端,所以最好将它放到顺手的区域。
colinLXP
如雷贯耳
11
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
Windows
对于Windows用户,你需要在虚拟机中安装并运行一个基本的Ubuntu Linux系统,来做本书的练习,并且避免任何Windows中安装的问题。
译者注:如果你的Windows版本是Win10 14316及之后的版本,可以开启Ubuntu子系统来获取Linux环境。
登录百度帐号
扫二维码下载贴吧客户端
下载贴吧APP
看高清直播、视频!
贴吧页面意见反馈
违规贴吧举报反馈通道
贴吧违规信息处理公示