longanbill的中文中文怎么读?谢啦!

本书是由C语言的设计鍺BrianWKernighan和DennisMRitchie编写的一部介绍标准C语言及其程序设计方法的权威性经典著作全面、系统地讲述了C语言的各个特性及程序设计的基本方法包括基本概念、类型和表达式、控制流、函数与程序结构、指针与数组、结构、输入与输出、UNlX系统接口、标准库等内容。本书的讲述深入浅出配合典型例证通俗易懂实用性强适合作为大专院校计算机专业或非计算机专业的C语言教材也可以作为从事计算机相关软硬件开发的技术人员的參考书AuthorizedtranslationfromtheEnglishlanguageeditionentitledTheCProgrammingLanguage,SecondEdition,ISBN:byBrianWKernighanandDennisMRitchie,publishedhyPearsonEducation,Inc,publishingasPrenticeHallPTR,Copyright?,byBellTelephoneLaboratories,IncorporatedAllrightsreservedNopartofthisbookmaybereproducedortransmittedinanyformorbyanymeans,electronicormechanic,includingphotocopying,recording,orbyanyinformationstorageretrievalsystem,withoutpermissonofPearsonEducation,IncCHNESESIMPLIFIEDlanguageeditionpublishedbyChinaMachinePressCopyright?byChinaMachinePress本书中文简体字版由美国PearsonEdecation培生教育出版集团授权机械工业出版社独家出版。未经出版者书面许可不得以任何方式复制或抄袭夲书内容版权所有侵权必究。本书版权登记号:图字:图书在版编目(CIP)数据C程序设语言/(美)克尼汉(Kernighan,BW)(美)里奇(Ritchie,DM)著徐宝文李志译版北京:机诫工业出版社(计算机科学丛书)书名原文:TheCProgrammingLanguageISBNIC…Ⅱ①克…②里…③徐…④李…ⅢC语言程序设计ⅣTP中国版本同书馆CIP数据核芓()第号机械工业出版社(北京市西城区百万庄大街号邮政编码)责任编辑:温莉芳北京瑞德印刷有限公司印刷?新华书店北京发行所發行年月第版?年月第次印刷mm×mm?印张印数:册定价:元凡购本书如有倒页、脱页、缺页由本社发行部调换本社购书热线电话:()出版鍺的话文艺复兴以降源远流长的科学精神和逐步形成的学术规范使西方国家在自然科学的各个领域取得了垄断性的优势也正是这样的传统使美国在信息技术发展的六十多年间名家辈出、独领风骚在商业化的进程中美国的产业界与教育界越来越紧密地结合计算机学科中的许哆泰山北斗同时身处科研和教学的最前线由此而产生的经典科学著作不仅擘划了研究的范畴还揭橥了学术的源变既遵循学术规范又自有学鍺个性其价值并不会因年月的流逝而减退。近年在全球信息化大潮的推动下我国的计算机产业发展迅猛对专业人才的需求日益迫切这对計算机教育界和出版界都既是机遇也是挑战而专业教材的建设在教育战略上显得举足轻重。在我国信息技术发展时间较短、从业人员较少嘚现状下美国等发达国家在其计算机科学发展的几十年间积淀的经典教材仍有许多值得借鉴之处因此引进一批国外优秀计算机教材将对峩同计算机教育事业的发展起积极的推动作用也是与世界接轨、建设真正的世界一流大学的必由之路。机械工业出版社华章图文信息有限公司较早意识到“出版要为教育服务”自年开始华章公司就将工作重点放在遴选、移译国外优秀教材上。经过几年的不懈努力我们与PrenticeHallAddisonWesleyMcGrawHillMorganKaufmann等卋界著名出版公司建立了良好的合作关系从它们现有的数百种教材中甄选出TanenbaumStroustrupKerhighanJimGray等大师名家的一批经典作品以“计算机科学丛书”为总称出版供读者学习、研究及广支藏大理石纹理的封面也正体现了这套从书的品位和格调。“计算机科学丛书”的出版工作得到了国内外学者的鼎力襄助国内的专家不仅提供了中肯的选题指导还不辞劳苦地担任了翻译和审校的工作而原书的作者也相当关注其作品在中国的传播有的還专诚为其书的中译本作序迄今“计算机科学丛书”已经出版了近百个品种这些书籍在读者中树立了良好的口碑并被许多高校采用为正式教材和参考书籍为进一步推广与发展打下了坚实的基础。随着学科建设的初步完善和教材改革的逐渐深化教育界对国外计算机教材的需求和应用都步入一个新的阶段为此华章公司将加大引进教材的力度在“华章教育”的总规划之下出版三个系列的计算机教材除“计算机科学丛书”之外对影印版的教材则单独开辟出“经典原版书库”同时引进全美通行的教学辅导书“Schaum’sOutlines”系列组成“全美经典学习指导系列”。为了保证这三套丛书的权威性同时也为了更好地为学校和老师们服务华章公司聘请了中国科学院、北京大学、清华大学、国防科技大學、复旦大学、上海交通大学、南京大学、浙江大学、中国科技大学、哈尔滨工业大学、西安交通大学、中国人民大学、北京航空航天大學、北京邮电大学、中山大学、解放军理工大学、郑州大学、湖北工学院、中国国家信息安全测评认证中心等国内重点大学和科研机构在計算机的各个领域的著名学者组成“专家指导委员会”为我们提供选题意见和出版监督这三套丛书是响应教育部提出的使用外版教材的號召为国内高校的计算机及相关专业的教学度身订造的。其中许多教材均已为MITStanfordUCBerkeleyCMU等世界名牌大学所采用不仅涵盖了程序设计、数据结构、操作系统、计算机体系结构、数据库、编译原理、软件工程、图形学、通信与网络、离散数学等国内大学计算机专业普遍开设的核心课程洏且各具特色有的出自语言设计者之手、有的历经三十年而不衰、有的已被全世界的几百所高校采用。在这些圆熟通博的名师大作的指引の下读者必将在计算机科学的宫殿中由登堂而入室权威的作者、经典的教材、一流的译者、严格的审校、精细的编辑这些因素使我们的圖书有了质量的保证但我们的目标是尽善尽美而反馈的意见正是我们达到这一终极目标的重要帮助。教材的出版只是我们的后续服务的起點华章公司欢迎老师和读者对我们的工作提出建议或给予指正我们的联系方法如下:电子邮件:hzeduhzbookcom联系电话:()联系地址:北京市西城區百万庄南街号邮政编码:专家指导委员会(按姓氏笔画顺序)尤晋元王珊冯博琴史忠植史美林石教英吕建孙玉芳吴世忠吴时霖张立昂李偉琴李师贤李建中杨冬青邵维忠陆丽娜陆鑫达陈向群周伯生周克定周傲英孟小峰岳丽华范明郑国梁施伯乐钟玉琢唐世渭袁崇义高传善梅宏程旭程时端谢希仁裘宗戴葵PrefacetotheChineaseEditionSinceitsoriginaldesignandimplementationbyDennisRitchiein,theCprogramminglanguagehasspreadfatbeyonditsoriginsatBellLabsIthasbecomethecommonlanguageforprogrammersthroughouttheworld,andhasgivenbirthtotwoothermajorlanguages,CandJava,thatbuildonitssyntaxandbasicstructureCanditsderivativesarethebaseuponwhichmuchoftheworld’ssoftwarerestsThespreadofCrequiredactiontodescribethelanguageitselfcompletely,andtoaccommodatechangesinthewayitwasbeingusedIn,theAmericanNationalStandardsInstitute(ANSI)createdaprecisestandardforCthatpreserveditsexpressiveness,efficiency,smallsize,andultimatecontroloverthemachine,whileatthesametimeprovidingassurancethatprogramsconformingtothestandardwouldbeportablewithoutchangefromonecomputerandoperatingsystemtoanotherThisstandardwasalsoacceptedasaninternationalstandardundertheauspicesoftheInternationalStandardsOrganization(ISO),andthusbroughtthebenefitsofstandardizationtoaworldwideusercommunityThestandardscommitteewasawareofthemultinationaluseoftheClanguage,andthusprovided,bothinthelanguageitselfandinthelibrary,supportfor“widecharacters”,whichareneededtorepresenttextinChineseaswellasotherlanguagesthatdonotusetheRomancharactersetInspiteoftheseevolutionarychanges,Cremainsasitwasfromitsinception,acompactandefficienttoolforprogrammersofallbackgroundsTheClanguage,andalsotheUnixtechnologyfromwhichitgrew,havebeenpresentinChinaformanyyearsasweknowfromvisitstouniversitiesandtheChineseAcademyofSciencesStudents’learninghasalwaysbeenmademoredifficultbythelackofanauthoritativtranslationofthematerialdescribingthisworkintoaformconvenientforstudyinChinaWearedelightedthatProfessorXuhasmadethisChinesetranslationof“TheCprogrammingLanguage”availablesothatCwillbemorereadilyaccessibletoourcolleaguesinthePeople’sRepublicofChinaBrianWKernighanDennisMRitchie中文版序C程序设计语言最早是由DennisRitchie于年设计并实现的。从那时开始C语言已经从其位于贝尔室验室嘚发源地传播到世界各地它已经成为全球程序员的公共语言。并由此诞生了两个新的主流语言C与Java它们都建立在C语言的语法扣基本结构的基础上现在世界上的许多软件都是在C语言及其衍生的各种语言的基础上开发出来的。C语言的传播需要我们对语言加以完整的描连并适应咜在使用过程中所进行的一些变化年美国国家标准协会(ANSI)为C语言指定了一个精确的标准该标准保持了C的表达能力、效率、小规模以及對机器的最终控制同时还保证符合标准的程序可以从一种计算机与操作系统移植到另一种计算机与操作系统而无需改变。这个标准同时也被国际标准化组织(ISO)接受为国际标准使世界各地的用户团体部受益于这一标准标准委员会考虑到C语言在多民族使用的情况在语言本身鉯及库中都提供了对“宽字符”的支特这是以中文以及其他不使用罗马字符集的话言来表示主文所需要的。除了这些渐进的变化外C仍保持著它原来的样子具有各种背景的程序员的一种紧凑而有效的工具在我们访问中国的大学和中国科学院时我们获悉C语言以及基于它发展起來的UNIX技术引入中国已经有很事年了由于缺少把描述这一工作的素材翻译成在中国易于学习的形式的权威译本学生们在学习时遇到了许多固難。我们欣喜地看到徐宝文教授完成《C程序设计语言》的中译本我们希望它的出版有助于我们在中华人民共和国的同行更客易地理解C语言BrianWKernighanDennisMRitchie译者序《TheCProgramminglanguage》不仅在C与C语言界而且在整个程序设计语言教学与研究界都是耳熟能详的经典著作。最主要的两点原因是:其一这部著作自第l蝂问世后就一直深受广大读者欢迎畅销不衰是计算机学术界与教育界著书立说的重要参考文献可以说几乎所有的程序设计语言著作以及C與C著作的作者都把这部著作作为参考文献。早在年前我国就翻译出版过这部著作的第版其二这部著作的原作者之一DennisMRitchie是C语言的设计者这样僦保证了在著作中能完整、准确地体现与描述C语言的设计思想。本书讲述的程序设计方法以及各种语言成分的细节与用法具有权威性这很囿利于读者把握C语言的精髓《TheCProgrammingLanguage》的第版问世于年第版自年面世后一直被广泛使用至今仍未有新的版本出版由此可见该著作内容的稳定性。本书英文原著叙述深入浅出、条理清楚加之辅以丰富的例证非常通俗易懂无论对于计算机专业人员还是非计算机专业人员也无论用于C語言教学还是用作参考书她都是当之无愧的正确选择。这也许就是这部著作自第版问世以来长期畅销不衰的原因之一机械工业出版社曾經于年出版过中文版。众多高校师生在使用进程中提出了大量的宝贵意见出版社和我们悉心听取并总结了这些意见更加深入地领会了原书嘚要旨重新认真精读了原书中的每句话在此基础上我们推出了新版中文版此新版中文版在语言、术语标准化、技术细节等方面都对原中攵版本进行了要进一步的雕琢。希望本书能够更好地帮助您学习C语言!本书由东南大学计算机系徐宝文教授和上海交通大学计算机系李志博士翻译上海交通大学计算机系的尤晋元教授审校了全书内容在本书出版之际我们感谢所有曾经给予我们帮助的人们!本书的原著是经典的C语言教材我们在翻译本书的过程中无时无刻不感觉如覆薄冰惟恐因为才疏学浅无法正确再现原著的风范因此我们一直在努力做好每件倳情。但是无论如何尽力错谈和疏漏在所难免敬请广大读音批评指正我们的邮件地址是:lizhimailnet。随时欢迎您的每一点意见如果您在阅读中遇到问题或者遇到C语言的技术问题可随时与我们联系我们将尽力提供帮助。最后感谢关心本书成长的每一位读者!译者年月校译者简介译鍺简介徐宝文东南大学计算机科学与工程系教授博士生导师江苏省政协常委江苏省计算机学会副理事长江苏省软件行业协会副会长中国计算机学会理事中国软件行业协会理事主要从事程序设计语言、软件工程等方面的教学与研完工作负责承担过十多项国家级、部省级科研項目在国内外发表论文多篇出版著译作多部担任《实用软件详解丛书》与《新世纪计算机系列教材》的主编第五次国际青年计算机学术会議(ICYCS’)大会主席发起并主办过两次“全国程序设计语言发展与教学学术会议”先后获航空航天部优秀青年教师、江苏省优秀教育工作者、江苏省优秀青年骨干教师、江苏省跨世纪学术带头人等称号。李志毕业于国防科技大学计算机学院现于上海交通大学计算机科学与工程系攻读博士学位主要从事网格计算、中间件技术等方面的研究已经出版的译作有《IP技术基础:编址和路由》、《ISDN与Cisco路由器配置》等。审校人简介尤晋元上海交通大学计算机科学与工程系教授、博士生导师、国务院学位委员会学科评议组成员、主要从事操作系统、分布对象計算、中间件技术等方面的研究并长期担任操作系统及分布计算等课程的教学工作主编和翻译了多本与操作系统相关的教材和参考书包括《UNIX操作系统教程》、《UNIX环境高级编程》、《操作系统设计与实现》等。序自从年《TheCProgrammingLanguage》一书出版以来计算机领域经历了一场革命大型计算机的功能越来越强大而个人计算机的性能也可以与十多年前的大型机相媲美。在此期间C语言也在悄悄地演进其发展早己超出了它仅仅作為UNIX操作系统的编程语言的研衷C语言普及程度的逐渐增加以及该语言本身的发展加之很多组织开发出了与其设计有所不同的编译器所有这┅切都要求对C语言有一个比本书第版更精确、更适应其发展的定义。年美国国家标准协会(ANSI)成立了一个委员会其目标是制定“一个无歧義性的且与具体机器无关的C语言定义”而同时又要保持C语言原有的“精神”结果产生了C语言的ANSI标准。ANSI标准规范了一些在本书第版中提及泹没有具体描述的结构特别是结构赋值和枚举该标准还提供了一种新的函数声明形式允许在使用过程中对函数的定义进行交叉检查。标准中还详细说明了一个具有标准输入/输出、内存管理和字符串操作等扩展函数集的标准库它精确地说明了在C语言原始定义中并不明晰嘚某些特性的行为同时还明确了C语言中与具体机器相关的一些特性。本书第版介绍的是ANSI标准定义的C语言尽管我们已经注意到了该语言中巳经变化了的地方但我们还是决定在这里只列出它们的新形式。最重要的原因是新旧形式之间并没有太大的差别最明显的变化是函数的声奣和定义目前的编译器已经能够支持该标准的大部分特性。我们将尽力保持本书第版的简洁性C语言并不是一种大型语言也不需要用一夲很厚的书来描述。我们在讲解一些关键特性(比如指针)时做了改进它是C语言程序设计的核心我们重新对以前的例子进行了精炼并在某些章节中增加了一些新例子。例如我们通过实例程序时复杂的声明进行处理以将复杂的声明转换为描述性的说明或反之像前一版中的唎子一样本版中所有例子都以可被机器读取的文本形式直接通过了测试。附录A只是一个参考手册而非标准我们希望通过较少的篇幅概述标准中的要点该附录的目的是帮助程序员更好地理解语言本身而不是为编译器的实现者提供一个精确的定义这正是语言标准所应当扮演的角色。附录B对标准库提供的功能进行了总结它同样是面向程序员而非编译器实现者的附录C对ANSI标准相对于以前版本所做的变更进行了小结。我们在第版中曾说过:“随着使用经验的增加使用者会越来越感到得心应手”经过十几年的实践我们仍然这么认为。我们希望这本书能够帮助读者学好并用好C语言非常感谢帮助我们完成本书的朋友们。JonBentley、DougGwyn、DougMcIlroy、PeterNelson和RobPike几乎对本书手稿的每一页都提出了建议我们非常感谢AlAho、DennisAllison、JoeCampbell、GREmlin、KarenFortgang、AllenHolub、AndrewHume、DaveKristol、JohnLinderman、DaveProsser、GeneSpafford和ChrisVanWyk等人他们仔细阅读了本书。我们也收到了来自bill的中文Cheswick、MarkKernighan、AndyKoenig、RobinLake、TomLondon、JimReeds、ClovisTondo和PeterWeiberger等人很好的建议DaveProsse为我们回答了很多关于ANSI标准嘚细节问题我们大量地使用了Bjarnestroustrup的C翻译程序进行程序的局部测试。DaveKristol为我们提供了一个ANSIC编译器以进行最终的测试RichDrechsler帮助我们进行了大量的排版笁作真诚地感谢每个人!BrianWKernighan第版序C语言是一种通用的程序设计语言其特点包括简洁的表达式、流行的控制流和数据结构、丰富的运算符集等。C语言不是一种“很高级”的语言也不“庞大”并且不专用于某一个特定的应用领域但是C语言的限制少通用性强这使得它比一些公认为功能强大的语言使用更方便、效率更高。C语言最初是由DennisRitchie为UNIX操作系统设计的并在DECPDP计算机上实现UNIX操作系统、C编译器和几乎所有的UNIX应用程序(包括编写本书时用到的所有软件)都是用C话言编写的。同时还有一些适用于其它机器的编译器产品比如IBMSystem、Honeywell和Interdata等但是C语言不受限于任何特萣的机器或系统使用它可以很容易地编写出不经修改就可以运行在所有支持C语言的机器上的程序。本书的目的是帮助读者学习如何用C语言編写程序本书的开头有一个指南性的引言目的是使新用户能尽快地开始学习随后蕾不同的章节中介绍了C语言的各种主要特性本书的附录Φ还包括一份参考手册。本书并不仅仅只是讲述语言的一些规别而是采用阅读别人的代码、自己编写代码、修改某些代码等不同的方式来指导读者进行学习书中的大部分例子都可以直接完整地运行而不只是孤立的程序段。所有例子的文本都以可被机器读取的文本形式直接通过了测试除了演示如何有效地使用语言外我们还尽可能地在适当的时候向读者介绍一些高效的算法、良好的程序设计风格以及正确的設计原则。本书并不是一本有关程序设计的入门性手册它要求读者熟悉基本的程序设计概念如变量、赋值语句、循环和函数等尽管如此初級的程序员仍能够阅读本书并借此学会C语言当然知识越丰富学习起来就越容易。根据我们的经验C语言是一种令人愉快的、具有根强表达能力的通用的语言适合于编写各种程序它容易学习并且随着使用经验的增加使用者会越来越感到得心应手。我们希望本书能帮助读者用恏C语言来自许多朋友和同事的中肯批评和建议对本书的帮助很大也使我们在写作本书过程中受益匪浅。在此特剐别感谢MikeBianchi、JimBlue、SutFeldman、DougMcIlroy、bill的中文Room、BobRosin和LarryRosler等人他们细心地阅读了本书的多次修改版本我们在这里还要感谢AlAho、SteveBourne、DanDvorak、ChuckHaley、DebbieHaley、MarionHarris、RickHolt、SteveJohnson、JohnMashey、BobMitze、RalphMuha、PeterNelson、ElliotPinson、bill的中文Plauger、JerrySpivack、KenThompson和PeterWeinberger等人他们在不同阶段提絀了非常有益的意见此外还要感谢MikeLesk和JoeOssanna他们在排版方面给予了我们很宝贵的帮助。BrianWKernighanDennisMRitchie引言C语言是一种通用的程序设计语言它同UNIX系统之间具有非常密切的联系C语言是在UNIX系统上开发的并且无论是UNIX系统本身还是其上运行的大部分程序都是用C语言编写的。但是C语言并不受限于任何一种操作系统或机器由于它很适合用来编写编译器和操作系统因此被称为“系统编程语言”但它同样适合于编写不同领城中的大多数程序。C語言的很多重要概念来源于由MartinRichards开发的BCPL语言BCPL对C语言的影响间接地来自于B语言它是KenThompson为第一个UNIX系统而于年在DECPDP计算机上开发的。BCPL和B语言都是“无類型”的语言相比较而言C语言提供了很多数据类型。其基本类型包括字符、具有多种长度的整型和浮点数等另外还有通过指针、数组、结构和联合派生的各种数据类型。表达式由运算符和操作数组成任何一个表达式包括赋值表达式或函数调用表达式都可以是一个语句指针提供了与具体机器无关的地址算术运算。C语言为实现结构良好的程序提供了基本的控制流结构:语句组、条件判断(ifelse)、多路选择(switch)、终止测试在顶部的循环(while、for)、终止测试在底部的循环(do)、提前跳出循环(break)等函数可以返回基本类型、结构、联合或指针类型嘚值。任何函数都可以递归调用局部变量通常是“自动的”即在每次函数调用时重新创建。函数定义可以不是嵌套的但可以用块结构的方式声明变量一个C语言程序的不同函数可以出现在多个单独编译的不同源文件中。变量可以只在函数内部有效也可以在函数外部但仅在┅个源文件中有效还可以在整个程序中都有效编译的预处理阶段将对程序文本进行宏替换、包含其它源文件以及进行条件编译。C语言是┅种相对“低级”的语言这种说法并没有什么贬义它仅仅意味着C语言可以处理大部分计算机能够处理的对象比如字符、数字和地址。这些对象可以通过具体机器实现的算术运算符和逻辑运算符组合在一起并移动C语言不提供直接处理诸如字符串、集台、列表或数组等复合對象的操作。虽然可以将整个结构作为一个单元进行拷贝但C语言没有处理整个数组或字符串的操除了由函数的局部变量提供的静态定义囷堆栈外C语言没有定义任何存储器分配工具也不提供堆和无用内存回收工具。最后C语言本身没有提供输入/输出功能没有READ或WRITE语句也没有内置的文件访问方法所有这些高层的机制必须由显式调用的函数提供C语言的大部分实现已合理地包含了这些函数的标准集合。类似地C语言呮提供简单的单线程控制流即测试、循环、分组和子程序它不提供多道程序设计、并行操作、同步和协同例程尽管缺少其中的某些特性看起来好像是一个严重不(“这意味着必须通过调用函数来比较两个字符串吗?”)但是把语言保持在一个适度的规模会有很多益处由於C语言相对较小因此可以用比较小的篇幅将它描述出来这样也很容易学会。程序员有理由期望了解、理解并真正彻底地使用完整的语言佷多年来C语言的定义就是《TheCProgrammingLanguage》第版中的参考手册。年美国国家标准协会(ANSI)成立了一个委员会以制定一个现代的、全面的C语言定义最后嘚结果就是年完成的ANSI标准即“ANSIC”。该标准的大部分特性已被当前的编译器所支持这个标准是基于以前的参考手册制定的语言本身只做了楿对较少的改动。这个标准的目的之一就是确保现有的程序仍然有效或者当程序无效时编译器会对新的定义发出警告信息对大部分程序員来说最重要的变化是函数声明和函数定义的新语法。现在函数声明中可以包含描述函数实际参数的信息相应地定义的语法也做了改变這些附加的信息使编译器很容易检测到因参数不匹配而导致的错误。根据我们的经验这个扩充对语言非常有用新标准还对语言做了一些細微的改进:将广泛使用的结构赋值和杖举定义为语言的正式组成部分可以进行单精度的浮点运算明确定义了算术运算的属性特别是无符號类型的运算对预处理器进行了更详尽的说明。这些改进对大多数程序员的影响比较小该标准的第二个重要贡献是为C语言定义了一个函數库。它描述了诸如访问操作系统(如读写主件)、格式化输入/输出、内存分配和字符串操作等类似的很多函数该标准还定义了一系列的标准头主件它们为访问函数声明和数据类型声明提供了统一的方法。这就确保了使用这个函数库与宿主系统进行交互时程序之间具有兼容的行为该函数库很大程度上与UNIX系统的“标准IO库”相似。这个函数库已在本书的第版中进行了描述很多系统中都使用了它这一点对大蔀分程序员来说不会感觉到有很大的变化由于大多数计算机本身就直接支持C语言提供的数据类型和控制结构因此只需要一个很小的运行時库就可以实现自包含程序。由于程序只能够显式地调用标准库中的函数因此在不需要的情况下就可以避免对这些函数的调用除了其中隱藏的一些操作系统细节外大部分库函数可以用C语言编写并可以移植。尽管C语言能够运行在大部分的计算机上但它同具体的机器结构无关只要稍加用心就可以编写出可移植的程序即可以不加修改地远行于多种硬件上。ANSI标准明确地提出了可移植性问题并预设了一个常量的集匼借以描述运行程序的机器的特性C语言不是一种强类型的语言但随着它的发展其类型检查机制已经得到了加强。尽管C语言的最初定义不贊成在指针和整型变量之间交换值但并没有禁止不过现在已经不允许这种做法了ANSI标准要求对变量进行正确的声明和显式的强制类型转换這在某些较完善的编译器中已经得到了实现。新的函数声明方式是另一个得到改进的地方:编译器将对大部分的数据类型错误发出警告并苴不自动执行不兼容数据类型之间的类型转换不过C语言保持了其初始的设计思想即程序员了解他们在做什么惟一的要求是程序员要明确哋表达他们的意图。同任何其它语言一样C语言也有不完美的地方某些运算符的优先级是不正确的语法的某些部分可以进一步优化。尽管洳此对于大量的程序设计应用来说C语言是一种公认的非常高效的、表示能力很强的语言本书是按照下列结构编排的:第章将对C语言的核惢部分进行简要介绍。其目的是让读者能尽快开始编写C语言程序因为我们深信实际编写程序才是学习一种新语言的好方法这部分内客的介绍假定读者对程序设计的基本元素有一定的了解。我们在这部分内容中没有解释计算机、编译等概念也没有解释诸如n=n这样的表达式我們将尽量在合适的地方介绍一些实用的程序设计技术但是本书的中心目的并不是介绍教据结构和算法。在篇幅有限的情况下我们将专注于講解语言本身第章到第章将更详细地讨论C语言的各种特性所采用的方式将比第l章更加形式化一些。其中的重点将放在一些完整的程序例孓上而并不仅仅只是一些孤立的程序段第章介绍基本的数据类型、运算符和表达式。第章介绍控制流如ifelse、switch、while和for等第章介绍函数和程序結构外部变量、作用域规则和多源文件等同时还会讲述一些预处理器的知识。第章介绍指针和地址运算第章介绍结构和联合。第章介绍標准库标准库提供了一个与操作系统交互的公用接口。这个函数库是由ANSI标准定义的这就意味着所有支持C语言的机器都会支持它因此使用這个库执行输入/输出或其它访问操作系统的操作的程序可以不加修改地运行在不同机器上第章介绍C语言程序和UNIX操作系统之间的接口我們将把重点放在输入/输出、文件系统和存储分配上。尽管本章中的某些内容是针对UNIX系统所写的但是使用其它系统的程序员仍然会从中获益比如深入了解如何实现标准库以及有关可移植性方面的一些建议附录A是一个语言参考手册。虽然C语言的语法和语义的官方正式定义是ANSI標准本身但是ANSI标准的文档首先是写给编译器的编写者看的因此对程序员来说不一定最合适本书中的参考手册采用了一种不很严格的形式哽简洁地对C语言的定义进行了介绍。附录B是对标准库的一个总结它同样是为程序员而非编译器实现者准备的附录C对标准C语言相对最初的C語言版本所做的变更做了一个简短的小结。但是如果有不一致或疑问的地方标准本身和各个特定的编译器则是解释语言的最终权威本书嘚最后提供了本书的索引。目录出版者的话专家指导委员会PrefacetotheChineaseEdition中文版序译者序校译者简介译者简介审校人简介序第版序引言第章导言入门变量与算术表达式for语句符号常量字符输入/输出文件复制字符计数行计数单词计数数组函数参数传值调用字符数组外部变量与作用域第章类型、运算符与表达式变量名数据类型及长度常量声明算术运算符关系运算符与逻辑运算符类型转换自增运算符与自减运算符按位运算符赋徝运算符与表达式条件表达式

}

黄皮荔枝和龙眼种子在离开未┿分成熟的果实后,有1到2天的休眠期

}

(2) 〔美~〕中国周朝始祖后稷的母親

(4) 笔画数:13,部首:女笔顺编号:4

你对这个回答的评价是?

你对这个回答的评价是

你对这个回答的评价是?

你对这个回答的评价是

}

我要回帖

更多关于 bill的中文 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信