发现一个问题,不要直接去翻答案,想象考试时真的遇到这道题该如何办。大脑想得越深,学习和记忆的效果就越好。2.做训练,写笔记。我们修改了这些习题,但即使你不做,就好比请对方代你吃饭,你依然也不会饱。不要对着题目看,写点什么出来,研究证实,学习时进行一些身体活动可以起到推动效果。3.阅读“这里没有蠢问题”单元。每一个都要读!他们不是附录,而是本书的核心内容,千万不要跳过他们。4.让阅读本书作为你睡前最后一件事,至少是最终一件有挑战的事。学习的一个别(特别是将短期记忆转变为大量记忆的那部分)出现在你把书本放下之后。大脑还要一点时间对常识进行消化,如果你在这段时间里又学习了新的东西,可能会把之前学到的忘记。5.大声读起来。朗读会使大脑的另一个别也活跃起来,如果你尝试理解或记忆某件事情,那么应大声地把它说起来。向另一个人解释,你会学得更快,并在讲解的过程中萌生一些新的设想。6.多吃饭。大脑喜欢在富有水的环境中工作,脱水(直到你觉得口渴说明你终于脱水了)会使你的认知功能衰退。7.倾听大脑。时刻留意你的头脑是否即将过载,当你看到自己读不出来或前读后忘时,就到了该休息一下的之后了。
如果过了这个点,你的学习效率都会大打折扣,并妨碍你的进度。8.心有所感。你要让大脑知道这件事很重要。试着处于故事布置的情景,根据自己的理解为每一张照片添加注释。埋怨一个拙劣的笑话不可笑,总比没有心态要好。9.多写代码!学习C语言只有一种方式:多写代码。这是本书的主旋律。编程是一种技能,掌握它的唯一途径就是训练。为此,我们提供了这些练习的机会:每一章都有一些习题提出疑问让你去解决,不要跳过他们——解题也是学习的一个别!简直不会做偷看一下答案也无伤大雅(谁没有提笔忘字的之后呢?),不过一定要在看答案前自己先做一遍。在你开启下一章的学习之前必定要确保上一章的程序无法恰当运行。用户须知这是一段学习感受,而不是一本工具书。因此我们消除了你在学习过程中或许会遭遇的一切障碍。第一遍阅读时,请从头看起,因为本书对你的常识背景做了一些假定。我们设想你是C语言的新手,但不是对编程一窍不通。我们设想你曾经写过一些程序,不必定要很多,但大约终于接触过其它语言(例如JavaScript)中的一些基本概念,例如循环、变量。C是一种不怎样“高级”的高级语言,所以如果你一点编程经验都没有,那么在学习这本书之前必须找本别的书来说说,强烈推荐HeadFirstProgramming。

你必须在手机上安装C编译器。这本书中我们使用了gcc(GNU编译器套装),它不但功能非常强悍,而且还是免费的。你必须保证你的手机上早已安装了gcc。如果你的操作系统是Linux,恭喜你,你将要拥有了gcc;即使你使用的是Mac,你必须安装Xcode开发软件,你可以从苹果应用商店或苹果官方下载;即使你使用的是Windows操作平台,有两种选取:一种是Cygwin(http//),它可以完全模拟UNIX环境,自然也就比如了gcc;即使你只是想建立能够在Windows下运行的程序,MinGW(http//)或许更符合你的还要。书中所有代码都是跨操作系统平台的,我们极力导致写出只能在一种操作平台中能够运行的代码。但在极部分状况中,不同操作平台上的推动可能会略有不同,但我们会强调来。我们从教你一些C语言的基本概念开始,然后就带你上战场了。第1章会介绍C语言的基础知识,有了很多东西打底,到第2章时你能够写一些有实际功能、十分有趣的程序了。其余章节会逐渐增加你的编程技巧。一眨眼的工夫,你就从一个C语言菜鸟成长为一名武林高手了。
不要跳过任何活动。习题和活动不是附加题,它们是这本书的核心内容。它们中有的是为了帮助你记忆,有的是为了方便理解,还有一些为了让你学甚至用,总之,不要跳过任何习题。重复是有意的,而且是重要的。HeadFirst系列与其它技术书的最大不同在于我们期望你真的能否学到东西,而且看完书后来能够记得他们。绝大多数工具书不以记忆为目的,但这本书的核心是学习,为了提高你的记忆,相同的概念可能重复发生好几遍。例子尽可能简单。读者告诉我们在一个200行的举例中寻求2行能表明问题的代码是一件非常难受的事儿。本书中的绝大个别例子代码都很短,这样你必须学习的个别也就知道简洁。别指望这些代码经久耐用,它们甚至不是完整的,它们是专门为了学习而写的,因此功能不必定完整。“脑力风暴”没有答案。一个别“脑力风暴”练习没有恰当答案,另一个别“脑力风暴”练习答案不唯一,你必须心里有数,而在一些练习中,你会找到一些提醒,它们将指引你步入胜利之门。技术审校团队技术审校人员DaveKitabjian,电气项目和计算机工程的双学位,拥有20年的咨询、集成、架构经验,曾为多家全球500强公司和高技术创业公司的用户提供信息系统解决方案。
工作之余,Dave喜欢弹古筝、练吉他、陪伴太太和三个儿子。VinceMilner,干了20多年的C(和其它语言)程序员,在多种系统上工作过。虽然在攻读数学系本科学位,但下棋时却再次输给六岁小孩。致谢编辑首先,要谢谢的人是BrianSawyer,是他让我们写了这本书。Brian在每一个环节都非常认同我们,让我们有足够的自由去试验新的看法,在截稿日期到来的那几天也没有太抓狂。O'Reilly团队感谢以下这种人一路以来对我们的帮助:KarenShaner找照片的本领堪称一绝,有她在事情就好办多了;在波士顿,LauriePetrycki让我们吃得很好,大大鼓舞了我们的信心;BrianJepson带我们走近了Arduino的神奇世界;首发小组制做出这本书的第一版电子版供人下载;最终要感谢RachelMonaghan和制作小组严格把关,他们是幕后英雄。你们个个都是好样的。家人、朋友和同学我们在此次的HeadFirst之旅中认识了这些朋友,感谢LouBarr、BrettMcLaughlin和SandersKleinfeld教了我们这些东西!David:感谢AndyParker、JoeBroughton、CarlJacques、SimonJones和其它同学,十分抱歉我在专心写作的这段时间里疏远了他们。
Dawn:要不是亲友好友们的鼎力支持,这本书可没这么容易写出!非常要谢谢爸爸爷爷、Carl、Steve、Gill、Jacqui、Joyce和Paul,真心感谢你们的支持和引导!没有它们就没有这本书我们的技术审查团队完成了一系列了不起的工作,让我们少走了这些弯路,并保证我们写的东西都是对的。同样感谢这些对首发试读版予以反馈的人,是大家让这本书更加更好。最后,向这个伟大系列丛书的创始人KathySierra和BertBates致谢!Safari®图书SafariBooksOnline()是一所按需出版的数字图书馆,它以图书和视频的方式出版全球一流科技、商务作家的作品。SafariBooksOnline是科技人士、软件研发人员、Web设计师、商务和时尚专家从事科学探究、解决难题、学习和进行认证培训的主要资源。SafariBooksOnline向组织机构、政府机关和个人提供各类产品组合和费用方案。订阅者可借助带有完整搜索用途的获得O'ReillyMedia、PrenticeHallProfessional、AddisonWesleyProfessional、MicrosoftPress、Sams、Que、PeachpitPress、FocalPress、CiscoPress、JohnWiley&Sons、Syngress、MorganKaufmann、IBMRedbooks、Packt、AdobePress、FTPress、Apress、Manning、NewRiders、McGraw-Hill、Jones&Bartlett、CourseTechnology以及其它几十家出版社的上千种图书、培训视频和预出版书稿。
想要知道更多SafariBooksOnline的信息,请访问我们的网页。1C语言入门:进入C语言的全球想了解计算机在想什么吗?你必须为一款新游戏编写高性能的代码吗?你必须为Arduino编程吗?你必须在iPhone应用中使用高级的第三方库吗?假如是的话,C语言就可以帮上忙了。相比其它大多数语言,C语言的工作层次更低,因此理解C语言可以让你更明白程序在运行时究竟出现了哪些,C语言还可以帮助你更好地理解其它语言。来吧,拿起编译器,很快你能够入门了。C语言用来构建空间小、速度快的程序C语言以此建立空间小、速度快的程序。它比其他大多数语言的具象层次更低,也就是说用C语言写的代码变得接近机器语言。C语言的工作模式计算机只理解一种语言——机器代码,即一串二进制0、1流。你可以在编译器的帮助下将C代码转换为机器代码。为了写出速度快、空间小、可移植性高的程序,人们常使用C语言。绝大多数的操作平台、其他计算机语言和大多数游戏硬件都是用C语言写的。你或许会遭遇三种C标准。ANSIC源于20世纪80年代后期,适用于最古老的代码;1999年起初的C99标准有了巨大的改进;在2011年公布的最新标准C11中,加入了一些很酷、很新的语言特征。
不同版本的标准之间差异不是巨大,如果遇到我们会强调。磨笔上阵猜一猜这些代码片段分别会做哪些。磨笔上阵解答仍然你还不能全部理解,也不用怀疑,稍后我们会具体地解释此处的每样东西。完整的C程序长啥样?为了建立完整的程序,需要在C源文件中输入代码。任何文本编辑器都可以构建C源文件,它们的文件名一般以.c结尾。我们来看一个典型的C源文件。让我们认真研究一下main()函数。main()变量聚焦1计算机会从main()变量开始运行程序。它的名字很重要:如果没有一个叫main()的函数,程序就能够开启。1在初期的ANSIC标准中,main()变量可以是void类型。但是在C99中main函数的返回类型应该是int。——译者注main()变量的返回类型是int。这是哪个意思呢?当计算机在运行程序时,它必须一些方法来判别程序能否运行顺利,计算机正是借助检查main()变量的返回值来做到这一点。如果让main()变量返回0,就说明程序运行顺利;如果让它返回其他值,就表示程序在运行时出了问题。函数名在返回类型后来发生,如果函数有参数,可以跟在函数名前面。
最后是函数体,函数体需要被花括号包围。百宝箱printf()变量用于显示格式化输出,它用变量的值来更换格式符,像这种:当调用printf()时,可以包括任意数目的参数,但保证每位参数都要有一个对应的%格式符。代码冰箱贴学院21点扑克游戏小组的选手写了一些代码贴在寝室的冰箱上,但有人把冰箱贴弄乱了!你能用这种冰箱贴重组代码吗?代码冰箱贴解答学院21点扑克游戏小组的选手写了一些代码贴在寝室的冰箱上,但有人把冰箱贴弄乱了!请用这些冰箱贴重组代码。这里没有蠢问题问:card_name[0]是哪个意思?答:它是用户输入的第一个字符。如果用户输入了10,那么card_name[0]就将是1。问:总是得用/*和*/写注解吗?答:如果你的编译器支持C99标准,就可以用//开始注解。编译器会将这一行的其余个别当做注释处理。问:怎么能够了解我的编译器支持哪种标准?答:你可以查看编译器的文档。对gcc来讲,ANSIC、C99和C11这三种标准它全部支持。如何运行程序?C语言是一种编译型语言,也就是说计算机不会直接解释代码,而是应该将给人阅读的源代码转换(或编译)为机器无法理解的机器代码,这样计算机才无法执行。
为了编译代码,需要一个叫编译器的程序。GNU编译器套件(GNUCompilerCollection),也叫gcc,是最流行的C编译器之一。gcc可以在很多操作平台中使用,而且除了C语言,它还可以编译很多其它语言,最重要的是,它是完全免费的。下面是用gcc编译并运行程序的过程:1.将前一页那道“代码冰箱贴”练习中的代码保存在一个叫cards.c的文件中。2.在命令提示符或终端中使用gcccards.c-ocards命令3.在Windows命令提示符中输入cards或在Mac和Linux终端中输入./cards运行程序。百宝箱在大部分机器中,可以用以下这个方法来编译并运行代码:这条命令只有在编译成功的状况下才能运行新程序,一旦编译过程中出了问题,它经常绕过运行程序这一步,仅仅在屏幕上显示错误消息。现在就必须创建cards.c文件,然后编译它。随着本章内容的展开,我们会在它的基础上逐渐改进。试驾让我们来说说程序能够顺利编译和运行。在你的机器上开启命令提示符或终端,试试吧!程序工作了!恭喜!你将要成功编译并运行了C程序。
gcc编译器从cards.c中提取出了供人阅读的源代码,并将其转化为cards程序中机器能够理解的机器代码。如果你用的是Mac或Linux,计算机会在一个叫cards的文件中建立机器代码;而在Windows中,所有程序的扩展名应该是.exe,因此这个文件叫cards.exe。这里没有蠢问题问:为什么我在Linux和Mac中运行程序时需要在程序前加上./?答:因为在类Unix操作平台中,运行程序需要选定程序所在的目录,除非程序的目录早已列在了PATH环境变量中。C语言不支持现成的字符串。C语言比其它大多数语言的具象层次更低,因此它不提供字符串,而是用了相同的东西来取代:以字符为元素的变量。如果你用过其它语言,一定已经见过数组了,数组就是一张有名有姓的事物清单,所以card_name只是一个变量名,用来引用你在命令提示符输入的那张字符列表的。把card_name定义为大小为2个字节的字段,就可以用card_name[0]和card_name[1]分别引用第一和第二个字符。为了理解字符串的工作机理,让我们深入计算机的传输器,看看C语言是怎样处理文本的……字符串聚焦字符串只是字符数组,当C语言发现一个这种的字符串时:s="Shatner"会把它当作一个变量写入,而这个函数是由一个个独立的字符构成的:字符串中的每个字节是函数中的一个元素,这就是为什么可以借助索引来引用字符串中的某个数组,比如s[0]、s[1]。别在字符串的
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-135580-4.html
它就是在展示一个“警告中国”的姿态