C语言入门经典-C语言编程

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

C入门经典(第4版)第01章C语言编程C语言是一种功能强大、简洁的计算机语言,通过它可以编写程序,指挥计算机完成指定的任务。我们可以利用C语言创建程序(即一组指令),并让计算机依指令行事。用C语言编程并不难,本书将用浅显易懂的方法介绍C语言的基础知识,读完本章,读者就可以编写第一个C语言程序了,其实C语言很简单。。C入门经典(第4版)1.1创建C程序C程序的创建过程有4个基本步骤或过程:编辑,编译,链接,执行。这些过程很容易完成(就像翻转手臂一样简单,而且可以随时翻转),首先介绍每个过程,以及它们对创建C程序的作用。编辑编译链接C入门经典(第4版)1.1.1编辑编辑过程就是创建和修改C程序的源代码——我们编写的程序指令称为源代码。有些C编译器带一个编辑器,可帮助管理程序。通常,编辑器是提供了编写、管理、开发与测试程序的环境,有时也称为集成开发环境(缩写为IDE)。C入门经典(第4版)1.1.2编译编译器可以将源代码转换成机器语言,在编译的过程中,会找出并报告错误。这个阶段的输入是在编辑期间产生的文件,常称为源文件。编译器能找出程序中很多无效或无法识别的错误,以及结构错误,例如程序的某部分永远不会执行。编译器的输出结果称为对象代码(objectcode),存放它们的文件称为对象文件(objectfile),这些文件的扩展名在Windows环境中通常是.obj,在Linux/UNIX环境中通常是.o。编译器可以在转换过程中找出几种不同类型的错误,它们大都会阻止对象文件的创建C入门经典(第4版)1.1.3链接链接器(linker)将源代码文件中将编译器产生的各种模块组合起来,再从C语言提供的程序库中添加必要的代码模块,将它们组合成一个可执行的文件。链接器也可以检测和报告错误,例如,遗漏了程序的某个部分,或者引用了一个根本不存在的库组件。C入门经典(第4版)1.1.4执行执行阶段就是当成功完成了前述3个过程后,运行程序。但是,这个阶段可能会出现各种错误,包括输出错误及什么也不做,甚至使计算机崩溃。不管出现哪种情况,都必须返回编辑阶段,检查并修改源代码。C入门经典(第4版)1.2创建第一个程序本节先浏览一下创建C语言程序的流程,从输入代码到执行程序的所有4个步骤。在这个阶段,若不了解所键入的代码信息,别担心,笔者会解释每一个步骤。C入门经典(第4版)1.3编辑第一个程序我们可以修改程序,在屏幕上输出其他信息。例如可以将程序改成:/*Program1.2YourSecondCProgram*/#includestdio.hintmain(void){printf(Ifatfirstyoudon\'tsucceed,try,try,tryagain!);return0;}C入门经典(第4版)1.4处理错误犯错乃人之常情,没什么难为情的。幸好计算机一般不会出错,而且非常擅长于找出我们犯的错误。编译器会列出在源代码中找到的一组错误信息(甚至比我们想象的多),通常会指出有错误的语句。此时,我们必须返回编辑阶段,找出有错误的代码并更正。有时一个错误会使后面本来正确的语句也出现错误。这多半是程序的其他部分引用了错误语句定义的内容所造成的。当然,定义语句有错,但被定义的内容不一定有错。C入门经典(第4版)1.5剖析一个简单的程序编写并编译了第一个程序后,下面是另一个非常类似的例子,了解各行代码的作用:/*Program1.3AnotherSimpleCProgram-DisplayingaQuotation*/#includestdio.hintmain(void){printf(BewaretheIdesOfMarch!);return0;}。注释预处理命令定义main()函数关键字函数体输出信息参数控制符C入门经典(第4版)1.5.1注释上述示例的第一行代码如下:/*Program1.3AnotherSimpleCProgram-DisplayingaQuotation*/这不是程序代码,因为它没有告诉电脑执行操作,它只是一个注释,告诉阅读代码的人,这个程序要做什么。位于/*和*/之间的任意文本都是注释。只要编译器在源文件中找到/*,就忽略它后面的内容,一直到表示注释结束的*/为止。/*可以和*/放在同一行代码上,也可以放在不同的代码行上。C入门经典(第4版)1.5.2与处理命令下面的代码行:#includestdio.h/*Thisisapreprocessordirective*/严格说来,它不是可执行程序的一部分,但它很重要,事实上程序没有它是不执行的。符号#表示这是一个预处理指令(preprocessingdirective),告诉编译器在编译源代码之前,要先执行一些操作。编译器在编译过程开始之前的预处理阶段处理这些指令。预处理指令相当多,大多放于程序源文件的开头C入门经典(第4版)1.5.3定义main()函数函数是两个括号之间执行某组操作的一段代码。每个C程序都由一个或多个函数组成,每个C程序都必须有一个main()函数——因为每个程序总是从这个函数开始执行。因此假定创建、编译、链接了一个名为progname.exe的文件。执行它时,操作系统会调用这个程序的main()函数。C入门经典(第4版)1.5.4关键字在C语言中,关键字是有特殊意义的字,所以在程序中不能将关键字用于其他目的。关键字也称为保留字。在前面的例子里,int就是一个关键字,void和return也是关键字。C语言有许多关键字,我们在学习C语言的过程中,将逐渐熟悉这些关键字。附录C列出了完整的C语言关键字表。C入门经典(第4版)1.5.5函数体main()函数的结构函数头指定函数定义的开头和函数名称起始括号定义函数体的开头函数体包含所有的语句,它们定义了函数执行时要完成的任务结束括号定义函数体的结束C入门经典(第4版)1.5.6输出信息例子中的main()函数体包含了—个调用printf()函数的语句:printf(BewaretheIdesofMarch!);/*Thislinedisplaysaquotation*/printf()是—个标准的库函数,它将引号内的信息输出到屏幕上,在这个例子里,调用这个函数会显示引号内的一段警示语:双引号内的字符串称为字符串字面量。注意这行代码用分号作为结尾。C入门经典(第4版)1.5.7参数包含在函数名(如上面语句中的printf()函数)后的圆括号内的项称为参数,它指定要传送给函数的数据。当传送给函数的参数多于一个时,要用逗号分开。在上面的例子中,函数的参数是双引号内的文本字符串。如果不喜欢例子中引号内的文本,可以改用自己想输出的句子。例如,使用马克白(Macbeth)的一句话:printf(Out,damnedSpot!OutIsay!);修改源代码后,必须再次编译及链接程序,才可执行。C入门经典(第4版)1.5.8控制符反斜杠(\)在字符串里有特殊的意义,它表示转义序列的开始。转义序列可以在字符串中插入无法指定的字符,例如制表符及换行,或编译器在某些情况下会混淆的字符,例如双引号一般用于界定字符串。反斜杠后面的字符表示是哪种转义序列。在这个例子里,n表示换行。还有其他许多转义序列。显然,反斜杠是有特殊意义的,所以需要一种方式在字符串中指定反斜杠。为此,应使用两个反斜杠(\\)。同样,如果要输出双引号,就用\C入门经典(第4版)1.6用C语言开发程序如果读者从未写过程序,对C语言开发程序的过程就不会很清楚,但它和我们日常生活的许多事务是相同的,万事开头难。一般首先大致确定要实现的目标,接着把该目标转变成比较准确的规范。有了这个规范后,就可以制订达到最终目标的一系列步骤了。就好比光知道要盖房子是不够的,还得知道需要盖什么样的房子,它有多大,用什么材料,要盖在哪里。这种详细规划也需要运用到编写程序上。了解问题详细设计实施测试C入门经典(第4版)1.6.1了解问题第一步是弄清楚要做什么。在不清楚应提供什么设施:多少间卧房、多少间浴室、各房间多大等等之前就开始建造房子,会有不知所措之感。所有这些都会影响建造房子所需的材料和工作量,从而影响整个房子的成本。一般来说,在满足需求和完成项目的有限资金、人力及时间之间总会达成某种一致。C入门经典(第4版)1.6.2详细设计要建造房子,必须有详细的计划。这些计划能让建筑工人按图施工,并详细描述房子如何建造——具体的尺寸、要使用的材料等。还需要确定何时完成什么工作。例如,在砌墙之前须先挖地基,所以这个计划必须把工作分为可管理的单元,以便执行起来井然有序。C入门经典(第4版)1.6.3实施有了房子的详细设计,就可以开始工作了。每组建筑工人必须按照进度完成他们的工作。在下一阶段开始前,必须先检查每个阶段是否正确完成。省略了这些检查,将可能导致整栋房子倒塌。当然,假使程序很大,可以一次编写—部分。一个部分完成后,再写下—部分。每个部分都要基于详细的设计规范,在进行下一个部分之前,应尽可能详细地检查每个部分的功能。这样,程序就会逐步完成预期的任务C入门经典(第4版)1.6.4测试房子完成了,还要进行许多测试:排水设备、水电设施、暖气等。任何部分都有可能出问题,这些问题必须解决。这有时是一个反复的过程,一个地方的问题可能会造成其他地方出问题。C入门经典(第4版)1.7函数及模块化编程到目前为止,“函数”这个词已出现过好几次了,如main()、printf()、函数体等。下面将深入研究函数是什么,为什么它们那么重要。大多数编程语言(包含C语言)都提供了一种方法,将程序切割成多个段,各段都可以独立编写。在C语言中,这些段称为函数。一个函数的程序代码与其他函数是相互隔绝的。函数与外界有一个特殊的接口,可将信息传进来,也可将函数产生的结果传出去。这个接口在函数的第一行即在函数名的地方指定。C入门经典(第4版)1.8常见错误错误是生活中的一部分。用C语言编写计算机程序时,必须用编译器将源代码转换成机器码,所以必须用非常严格的规则控制使用C语言的方式。漏掉一个该有的逗点,或添加不该有的分号,编译器都不会将程序转换成机器码。即使实践了多年,程序中也很容易出现输入错误。这些错误可能在编译或链接程序时找出。但有些错误可能使程序执行时,表面上看起来正常,却不定时地出错,这就需要花很多时间来跟踪错误了。C入门经典(第4版)1.9要点include指令用于在程序中包含外部文件的内容这表示注释的开始这个文本是一个注释,它不影响程序这表示注释的结束头文件stdio.h提供了标准输入输出函数,printf()是其中的一个,它输出要显示的信息这表示函数main()的开始每个函数都在大括号中包含函数体预处理指令以#符号开头,指定在编译程序之前要执行的动作void指定函数没有返回值这个起始大括号指定main()函数体的开始printf()语句显示引号内的文本结束大括号指定main()函数的结尾这些语句可以进行各种调用函数体包含可执行的语句,每个语句都必须以分号结束C入门经典(第4版)1.10小结本章编写了几个C程序。我们学习了许多基础知识,本章的重点是介绍一些基本概念,而不是详细探讨C程序语言。现在读者应该对编写、编译及链接程序很有信心了。也许读者目前对如何构建C程序只有模糊的概念。以后学了更多的C语言知识,编写了一些程序后,就会清楚明白了。

1 / 27
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功