《C语言入门经典(第四版)1-C语言编程.pdf》由会员分享,可在线阅读,更多相关《C语言入门经典(第四版)1-C语言编程.pdf(15页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 本文由m e n g 5056贡献 p p t 文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。C入门经典(第4版)入门经典(第01章 C语言编程 01章 语言编程 C语言是一种功能强大、简洁的计算机语言,通过它可以编写程序,指挥 计算机完成指定的任务。我们可以利用C语言创建程序(即一组指令)计算机完成指定的任务。我们可以利用C语言创建程序(即一组指令),并让计 算机依指令行事。用C语言编程并不难,本书将用浅显易懂的方法介绍C语言的基础知识,语言编程并不难,本书将用浅显易懂的方法介绍C 读完本章,读者就可以编写第一个C语言程序了,其实C 读完本章,读者就可以编写
2、第一个C语言程序了,其实C语言很简单。C入门经典(第4版)入门经典(1.1 创建 程序 创建C程序 C程序的创建过程有4个基本步骤或过程:编辑,编译,链接,执行。这 程序的创建过程有4 些过程很容易完成(就像翻转手臂一样简单,而且可以随时翻转)些过程很容易完成(就像翻转手臂一样简单,而且可以随时翻转),首先介绍每 个过程,以及它们对创建C 个过程,以及它们对创建C程序的作用。编辑 编译 链接 执行 C入门经典(第4版)入门经典(1.1.1 编辑 编辑过程就是创建和修改C程序的源代码我们编写的程序指令称为源 编辑过程就是创建和修改C程序的源代码我们编写的程序指令称为源 代码。有些C 代码。有些C
3、编译器带一个编辑器,可帮助管理程序。通常,编辑器是提供了 编写、管理、开发与测试程序的环境,有时也称为集成开发环境(缩写为IDE)。编写、管理、开发与测试程序的环境,有时也称为集成开发环境(缩写为IDE)。C入门经典(第4版)入门经典(1.1.2 编译 编译器可以将源代码转换成机器语言,在编译的过程中,会找出并报告 错误。这个阶段的输入是在编辑期间产生的文件,常称为源文件。编译器能找出程序中很多无效或无法识别的错误,以及结构错误,例如 程序的某部分永远不会执行。编译器的输出结果称为对象代码(o b j e c t c o d e),程序的某部分永远不会执行。编译器的输出结果称为对象代码(o b
4、 j e c t c o d e),存放它们的文件称为对象文件(o b j e c t f i l e),这些文件的扩展名在Wi n d o w s 环境 存放它们的文件称为对象文件(o b j e c t f i l e),这些文件的扩展名在Wi n d o w s 环境 中通常是.o b j,在Li n u x/UNIX环境中通常是.o。编译器可以在转换过程中找出 中通常是.o b j,在Li n u x/UNIX环境中通常是.o。编译器可以在转换过程中找出 几种不同类型的错误,它们大都会阻止对象文件的创建 C入门经典(第4版)入门经典(1.1.3 链接 链接器(l i n k e r)将
5、源代码文件中由编译器产生的各种模块组合起来,再从C 链接器(l i n k e r)将源代码文件中由编译器产生的各种模块组合起来,再从C语 言提供的程序库中添加必要的代码模块,将它们组合成一个可执行的文件。言提供的程序库中添加必要的代码模块,将它们组合成一个可执行的文件。链 接器也可以检测和报告错误,例如,遗漏了程序的某个部分,接器也可以检测和报告错误,例如,遗漏了程序的某个部分,或者引用了一个 根本不存在的库组件。根本不存在的库组件。C入门经典(第4版)入门经典(1.1.4 执行 执行阶段就是当成功完成了前述3 执行阶段就是当成功完成了前述3个过程后,运行程序。但是,这个阶段 可能会出现各种
6、错误,包括输出错误及什么也不做,甚至使计算机崩溃。不管 出现哪种情况,都必须返回编辑阶段,检查并修改源代码。C入门经典(第4版)入门经典(1.2 创建第一个程序 本节先浏览一下创建C语言程序的流程,从输入代码到执行程序的所有4 本节先浏览一下创建C语言程序的流程,从输入代码到执行程序的所有4 个步骤。在这个阶段,若不了解所键入的代码信息,别担心,笔者会解释每一 个步骤。C入门经典(第4版)入门经典(1.3 编辑第一个程序 我们可以修改程序,在屏幕上输出其他信息,例如可以将程序改成:/*Pr o g r am 1.2 Yo u r Se c o n d C Pr o g r a m */#i n
7、 c l u d e i n t m a i n(v o i d)p r i n t f(If a t f ip a g e 1r s t y o u d o n t s u c c e e d,t r y,t r y,t r y a g a i n!);d o n s u c c e e d,t r y,t r y,);r e t u r n 0;C入门经典(第4版)入门经典(1.4 处理错误 犯错乃人之常情,没什么难为情的。幸好计算机一般不会出错,而且非 常擅长于找出我们犯的错误。编译器会列出在源代码中找到的一组错误信息(甚至比我们想象的多),通常会指出有错误的语句。此时,我们必须返回编辑
8、 甚至比我们想象的多)阶段,找出有错误的代码并更正。有时一个错误会使后面本来正确的语句也出现错误。这多半是程序的其 他部分引用了错误语句定义的内容所造成的。当然,定义语句有错,但被定义 的内容不一定有错。C入门经典(第4版)入门经典(1.5 剖析一个简单的程序 编写并编译了第一个程序后,下面是另一个非常类似的例子,了解各行 代码的作用:/*Pr o g r a m 1.3 An o t h e r Si m p l e C Pr o g r a m -Di s p l a y i n g a Qu o t a t i o n */#i n c l u d e i n t m a i n(v o
9、 i d)p r i n t f(Be w a r e t h e Id e s Of Ma r c h!);Ma r c h!);r e t u r n 0;。注释 函数体 预处理命令 输出信息 定义m a i n()函数 定义m a i n()函数 参数 关键字 控制符 C入门经典(第4版)入门经典(1.5.1 注释 上述示例的第一行代码如下:/*Pr o g r a m 1.3 An o t h e r Si m p l e C Pr o g r a m -Di s p l a y i n g a Qu o t a t i o n */这不是程序代码,因为它没有告诉电脑执行操作,它只是一
10、个注释,告诉阅读 代码的人,这个程序要做什么。位于/*和 代码的人,这个程序要做什么。位于/*和*/之间的任意文本都是注释。只要编 译器在源文件中找到/*,就忽略它后面的内容,一直到表示注释结束的*译器在源文件中找到/*,就忽略它后面的内容,一直到表示注释结束的*/为止。/*可以和*/放在同一行代码上,也可以放在不同的代码行上。/*可以和*C入门经典(第4版)入门经典(1.5.2 与处理命令 下面的代码行:#i n c l u d e /*Th i s i s a p r e p r o c e s s o r d i r e c t i v e */严格说来,它不是可执行程序的一部分,但它很
11、重要,事实上程序没有 它是不执行的。符号#表示这是一个预处理指令(p r e p r o c e s s i n g d i r e c t i v e),告 它是不执行的。符号#表示这是一个预处理指令(p r e p r o c e s s i n g d i r e c t i v e),告 诉编译器在编译源代码之前,要先执行一些操作。编译器在编译过程开始之前 的预处理阶段处理这些指令。预处理指令相当多,大多放于程序源文件的开头 C入门经典(第4版)入门经典(1.5.3 定义m a i n()函数()函数 定义()函数是两个括号之间执行某组操作的一段代码。每个C 函数是两个括号之间执行某组
12、操作的一段代码。每个C程序都由一个或多 个函数组成,每个C程序都必须有一个m a i n()函数因为每个程序总是从这 个函数组成,每个C程序都必须有一个m a i n()函数因为每个程序总是从这 个函数开始执行。因此假定创建、编译、链接了一个名为p r o g n a m e.e x e 的文 个函数开始执行。因此假定创建、编译、链接了一个名为p r og n a m e.e x e 的文 件。执行它时,操作系统会调用这个程序的m a i n()函数。件。执行它时,操作系统会调用这个程序的m a i n()函数。C入门经典(第4版)入门经典(1.5.4 关键字 在C语言中,关键字是有特殊意义的
13、字,所以在程序中不能将关键字用于 其他目的。关键字也称为保留字。在前面的例子里,i n t 就是一个关键字,v o i d 其他目的。关键字也称为保留字。在前面的例子里,i n t 就是一个关键字,v o i d 和r e t u r n 也是关键字。C语言有许多关键字,我们在学习C语言的过程中,将逐 r e t u r n 也是关键字。C语言有许多关键字,我们在学习C 渐熟悉这些关键字。附录C列出了完整的C 渐熟悉这些关键字。附录C列出了完整的C语言关键字表。C入门经典(第4版)入门经典(1.5.5 函数头 指定函数定义的开头和函数名称 起始括号 定义函数体的开头 函数体 包含所有的语句,它
14、们定义了函数 执行时要完成的任务 结束括号 定义函数体的结束 函数体p a g e 2 m a i n()函数的结构 C入门经典(第4版)入门经典(1.5.6 输出信息 例子中的m a i n()函数体包含了个调用p r i n t f()函数的语句:例子中的m a i n()函数体包含了个调用p r i n t f()函数的语句:p r i n t f(Be w a r e t h e Id e s o f Ma r c h!);/*Th i s l i n e d i s p l a y s a q u o t a t i o n */p r i n t f()是 p r i n t f(
15、)是个标准的库函数,它将引号内的信息输出到屏幕上,在这个例 子里,调用这个函数会显示引号内的一段警示语:双引号内的字符串称为字符 串字面量。注意这行代码用分号作为结尾。C入门经典(第4版)入门经典(1.5.7 参数 包含在函数名(如上面语句中的p r i n t f()函数)包含在函数名(如上面语句中的pr i n t f()函数)后的圆括号内的项称为参数,它指定要传送给函数的数据。当传送给函数的参数多于一个时,要用逗号分开。在上面的例子中,函数的参数是双引号内的文本字符串。如果不喜欢例子中引 号内的文本,可以改用自己想输出的句子。例如,使用马克白(Ma c b e t h)的一 号内的文本,
16、可以改用自己想输出的句子。例如,使用马克白(Ma c b e t h)的一 句话:p r i n t f(Ou t,p r i n t f(Ou t,d a m n e d Sp o t!Ou t I s a y!);修改源代码后,必须再次编译及链接程序,才可执行。C入门经典(第4版)入门经典(1.5.8 控制符 反斜杠(反斜杠()在字符串里有特殊的意义,它表示转义序列的开始。转义序列可 以在字符串中插入无法指定的字符,例如制表符及换行,或编译器在某些情况 下会混淆的字符,例如双引号一般用于界定字符串。反斜杠后面的字符表示是 哪种转义序列。在这个例子里,n 哪种转义序列。在这个例子里,n 表示
17、换行。还有其他许多转义序列。显然,反斜杠是有特殊意义的,所以需要一种方式在字符串中指定反斜杠。为此,应 使用两个反斜杠(。同样,如果要输出双引号,就用 使用两个反斜杠()。同样,如果要输出双引号,就用 C入门经典(第4版)入门经典(1.6 用C语言开发程序 语言开发程序 如果读者从未写过程序,对C 如果读者从未写过程序,对C语言开发程序的过程就不会很清楚,但它和 我们日常生活的许多事务是相同的,万事开头难。一般首先大致确定要实现的 目标,接着把该目标转变成比较准确的规范。有了这个规范后,就可以制订达 到最终目标的一系列步骤了。就好比光知道要盖房子是不够的,还得知道需要 盖什么样的房子,它有多大
18、,用什么材料,要盖在哪里。这种详细规划也需要 运用到编写程序上。了解问题 详细设计 实施 测试 C入门经典(第4版)入门经典(1.6.1 了解问题 第一步是弄清楚要做什么。在不清楚应提供什么设施:多少间卧房、多 少间浴室、各房间多大等等之前就开始建造房子,会有不知所措之感。所有这 些都会影响建造房子所需的材料和工作量,从而影响整个房子的成本。一般来 说,在满足需求和完成项目的有限资金、人力及时间之间总会达成某种一致。C入门经典(第4版)入门经典(1.6.2 详细设计 要建造房子,必须有详细的计划。这些计划能让建筑工人按图施工,并 详细描述房子如何建造具体的尺寸、要使用的材料等。还需要确定何时完
19、 详细描述房子如何建造具体的尺寸、要使用的材料等。还需要确定何时完 成什么工作。例如,在砌墙之前须先挖地基,所以这个计划必须把工作分为可 管理的单元,以便执行起来井然有序。C入门经典(第4版)入门经典(1.6.3 实施 有了房子的详细设计,就可以开始工作了。每组建筑工人必须按照进度 完成他们的工作。在下一阶段开始前,必须先检查每个阶段是否正确完成。省 略了这些检查,将可能导致整栋房子倒塌。当然,假使程序很大,可以一次编写 当然,假使程序很大,可以一次编写部分。一个部分完成后,再写 下部分。每个部分都要基于详细的设计规范,在进行下一个部分之前,应尽 可能详细地检查每个部分的功能。这样,程序就会逐
20、步完成预期的任务 C入门经典(第4版)入门经典(1.6.4 测试 房子完成了,还要进行许多测试:排水设备、水电设施、暖气等。房子完成了,还要进行许多测试:排水设备、水电设施、暖气等。任何部分 都有可能出问题,这p a g e 3些问题必须解决。这有时是一个反复的过程,都有可能出问题,这些问题必须解决。这有时是一个反复的过程,一个地方的 问题可能会造成其他地方出问题。问题可能会造成其他地方出问题。C入门经典(第4版)入门经典(1.7 函数及模块化编程 到目前为止,“函数”这个词已出现过好几次了,如m a i n()、p r i n t f()、函 到目前为止,“函数”这个词已出现过好几次了,如m
21、 a i n()、p r i n t f()、函 数体等。下面将深入研究函数是什么,为什么它们那么重要。大多数编程语言(包含C语言)大多数编程语言(包含C语言)都提供了一种方法,将程序切割成多个段,各段都可以独立编写。在C 各段都可以独立编写。在C语言中,这些段称为函数。一个函数的程序代码与 其他函数是相互隔绝的。函数与外界有一个特殊的接口,可将信息传进来,也 可将函数产生的结果传出去。这个接口在函数的第一行即在函数名的地方指定。C入门经典(第4版)入门经典(1.8 常见错误 错误是生活中的一部分。用C 错误是生活中的一部分。用C语言编写计算机程序时,必须用编译器将源 代码转换成机器码,所以必
22、须用非常严格的规则控制使用C 代码转换成机器码,所以必须用非常严格的规则控制使用C语言的方式。漏掉 一个该有的逗点,或添加不该有的分号,编译器都不会将程序转换成机器码。即使实践了多年,程序中也很容易出现输入错误。这些错误可能在编译 或链接程序时找出。但有些错误可能使程序执行时,表面上看起来正常,却不 定时地出错,这就需要花很多时间来跟踪错误了。C入门经典(第4版)入门经典(1.9 要点 i n c l u d e 指令用于 在程序中包含外 部文件的内容 这表示注释的开始 这个文本是一个注 释,它不影响程序 这表示注释的结束 头文件 s t d i o.h 提供 了标准输入输出函 数,p r i
23、 n t f()是其中 的一个,它输出要 显示的信息 预处理指令以#符号 开头,指定在编译程 序之前要执行的动 作 v o i d 指 定 函 数 没有返回值 这表示函数 m a i n()的开始 这个起始大括号指 定 m a i n()函数体的 开始 p r i n t f()语 句 显 示 引 号内的文本 每个函数都在 大括号中包含 函数体 结束大括号指定 m a i n()函数的结尾 这些语句可以进行 各种调用 函数体包含可执行 的语句,每个语句都 必须以分号结束 C入门经典(第4版)入门经典(1.10 小结 本章编写了几个C 本章编写了几个C程序。我们学习了许多基础知识,本章的重点是介
24、绍一 些基本概念,而不是详细探讨C 些基本概念,而不是详细探讨C程序语言。现在读者应该对编写、编译及链接 程序很有信心了。也许读者目前对如何构建C 程序很有信心了。也许读者目前对如何构建C程序只有模糊的概念。以后学了 更多的C 更多的C语言知识,编写了一些程序后,就会清楚明白了。1本文由m e n g 5056贡献 p p t 文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。C入门经典(第4版)入门经典(第01章 C语言编程 01章 语言编程 C语言是一种功能强大、简洁的计算机语言,通过它可以编写程序,指挥 计算机完成指定的任务。我们可以利用C语言创建程序(即一组
25、指令)计算机完成指定的任务。我们可以利用C语言创建程序(即一组指令),并让计 算机依指令行事。用C语言编程并不难,本书将用浅显易懂的方法介绍C语言的基础知识,语言编程并不难,本书将用浅显易懂的方法介绍C 读完本章,读者就可以编写第一个C语言程序了,其实C 读完本章,读者就可以编写第一个C语言程序了,其实C语言很简单。C入门经典(第4版)入门经典(1.1 创建 程序 创建C程序 C程序的创建过程有4个基本步骤或过程:编辑,编译,链接,执行。这 程序的创建过程有4 些过程很容易完成(就像翻转手臂一样简单,而且可以随时翻转)些过程很容易完成(就像翻转手臂一样简单,而且可以随时翻转),首先介绍每 个过
26、程,以及它们对创建C 个过程,以及它们对创建C程序的作用。编辑 编译 链接 执行 C入门经典(第4版)入门经典(1.1.1 编辑 编辑过程就是创建和修改C程序的源代码我们编写的程序指令称为源 编辑过p a g e 4程就是创建和修改C程序的源代码我们编写的程序指令称为源 代码。有些C 代码。有些C编译器带一个编辑器,可帮助管理程序。通常,编辑器是提供了 编写、管理、开发与测试程序的环境,有时也称为集成开发环境(缩写为IDE)。编写、管理、开发与测试程序的环境,有时也称为集成开发环境(缩写为IDE)。C入门经典(第4版)入门经典(1.1.2 编译 编译器可以将源代码转换成机器语言,在编译的过程中
27、,会找出并报告 错误。这个阶段的输入是在编辑期间产生的文件,常称为源文件。编译器能找出程序中很多无效或无法识别的错误,以及结构错误,例如 程序的某部分永远不会执行。编译器的输出结果称为对象代码(o b j e c t c o d e),程序的某部分永远不会执行。编译器的输出结果称为对象代码(o b j e c t c o d e),存放它们的文件称为对象文件(o b j e c t f i l e),这些文件的扩展名在Wi n d o w s 环境 存放它们的文件称为对象文件(o b j e c t f i l e),这些文件的扩展名在Wi n d o w s 环境 中通常是.o b j,在L
28、i n u x/UNIX环境中通常是.o。编译器可以在转换过程中找出 中通常是.o b j,在Li n u x/UNIX环境中通常是.o。编译器可以在转换过程中找出 几种不同类型的错误,它们大都会阻止对象文件的创建 C入门经典(第4版)入门经典(1.1.3 链接 链接器(l i n k e r)将源代码文件中由编译器产生的各种模块组合起来,再从C 链接器(l i n k e r)将源代码文件中由编译器产生的各种模块组合起来,再从C语 言提供的程序库中添加必要的代码模块,将它们组合成一个可执行的文件。言提供的程序库中添加必要的代码模块,将它们组合成一个可执行的文件。链 接器也可以检测和报告错误,
29、例如,遗漏了程序的某个部分,接器也可以检测和报告错误,例如,遗漏了程序的某个部分,或者引用了一个 根本不存在的库组件。根本不存在的库组件。C入门经典(第4版)入门经典(1.1.4 执行 执行阶段就是当成功完成了前述3 执行阶段就是当成功完成了前述3个过程后,运行程序。但是,这个阶段 可能会出现各种错误,包括输出错误及什么也不做,甚至使计算机崩溃。不管 出现哪种情况,都必须返回编辑阶段,检查并修改源代码。C入门经典(第4版)入门经典(1.2 创建第一个程序 本节先浏览一下创建C语言程序的流程,从输入代码到执行程序的所有4 本节先浏览一下创建C语言程序的流程,从输入代码到执行程序的所有4 个步骤。
30、在这个阶段,若不了解所键入的代码信息,别担心,笔者会解释每一 个步骤。C入门经典(第4版)入门经典(1.3 编辑第一个程序 我们可以修改程序,在屏幕上输出其他信息,例如可以将程序改成:/*Pr o g r am 1.2 Yo u r Se c o n d C Pr o g r a m */#i n c l u d e i n t m a i n(v o i d)p r i n t f(If a t f ir s t y o u d o n t s u c c e e d,t r y,t r y,t r y a g a i n!);d o n s u c c e e d,t r y,t r y,
31、);r e t u r n 0;C入门经典(第4版)入门经典(1.4 处理错误 犯错乃人之常情,没什么难为情的。幸好计算机一般不会出错,而且非 常擅长于找出我们犯的错误。编译器会列出在源代码中找到的一组错误信息(甚至比我们想象的多),通常会指出有错误的语句。此时,我们必须返回编辑 甚至比我们想象的多)阶段,找出有错误的代码并更正。有时一个错误会使后面本来正确的语句也出现错误。这多半是程序的其 他部分引用了错误语句定义的内容所造成的。当然,定义语句有错,但被定义 的内容不一定有错。C入门经典(第4版)入门经典(1.5 剖析一个简单的程序 编写并编译了第一个程序后,下面是另一个非常类似的例子,了解
32、各行 代码的作用:/*Pr o g r a m 1.3 An o t h e r Si m p l e C Pr o g r a m -Di s p l a y i n g a Qu o t a t i o n */#i n c l u d e i n t m a i n(v o i d)p r i n t f(Be w a r e t h e Id e s Of Ma r c h!);Ma r c h!);r e t u r n 0;。注释 函数体 预处理命令 输出信息 定义m a i n()函数 定义m a i n()函数 参数 关键字 控制符 C入门经典(第4版)入门经典(1.5.1 注
33、释p a g e 5 上述示例的第一行代码如下:/*Pr o g r a m 1.3 An o t h e r Si m p l e C Pr o g r a m -Di s p l a y i n g a Qu o t a t i o n */这不是程序代码,因为它没有告诉电脑执行操作,它只是一个注释,告诉阅读 代码的人,这个程序要做什么。位于/*和 代码的人,这个程序要做什么。位于/*和*/之间的任意文本都是注释。只要编 译器在源文件中找到/*,就忽略它后面的内容,一直到表示注释结束的*译器在源文件中找到/*,就忽略它后面的内容,一直到表示注释结束的*/为止。/*可以和*/放在同一行代码上
34、,也可以放在不同的代码行上。/*可以和*C入门经典(第4版)入门经典(1.5.2 与处理命令 下面的代码行:#i n c l u d e /*Th i s i s a p r e p r o c e s s o r d i r e c t i v e */严格说来,它不是可执行程序的一部分,但它很重要,事实上程序没有 它是不执行的。符号#表示这是一个预处理指令(p r e p r o c e s s i n g d i r e c t i v e),告 它是不执行的。符号#表示这是一个预处理指令(p r e p r o c e s s i n g d i r e c t i v e),告 诉编
35、译器在编译源代码之前,要先执行一些操作。编译器在编译过程开始之前 的预处理阶段处理这些指令。预处理指令相当多,大多放于程序源文件的开头 C入门经典(第4版)入门经典(1.5.3 定义m a i n()函数()函数 定义()函数是两个括号之间执行某组操作的一段代码。每个C 函数是两个括号之间执行某组操作的一段代码。每个C程序都由一个或多 个函数组成,每个C程序都必须有一个m a i n()函数因为每个程序总是从这 个函数组成,每个C程序都必须有一个m a i n()函数因为每个程序总是从这 个函数开始执行。因此假定创建、编译、链接了一个名为p r o g n a m e.e x e 的文 个函数
36、开始执行。因此假定创建、编译、链接了一个名为p r og n a m e.e x e 的文 件。执行它时,操作系统会调用这个程序的m a i n()函数。件。执行它时,操作系统会调用这个程序的m a i n()函数。C入门经典(第4版)入门经典(1.5.4 关键字 在C语言中,关键字是有特殊意义的字,所以在程序中不能将关键字用于 其他目的。关键字也称为保留字。在前面的例子里,i n t 就是一个关键字,v o i d 其他目的。关键字也称为保留字。在前面的例子里,i n t 就是一个关键字,v o i d 和r e t u r n 也是关键字。C语言有许多关键字,我们在学习C语言的过程中,将逐
37、 r e t u r n 也是关键字。C语言有许多关键字,我们在学习C 渐熟悉这些关键字。附录C列出了完整的C 渐熟悉这些关键字。附录C列出了完整的C语言关键字表。C入门经典(第4版)入门经典(1.5.5 函数头 指定函数定义的开头和函数名称 起始括号 定义函数体的开头 函数体 包含所有的语句,它们定义了函数 执行时要完成的任务 结束括号 定义函数体的结束 函数体 m a i n()函数的结构 C入门经典(第4版)入门经典(1.5.6 输出信息 例子中的m a i n()函数体包含了个调用p r i n t f()函数的语句:例子中的m a i n()函数体包含了个调用p r i n t f(
38、)函数的语句:p r i n t f(Be w a r e t h e Id e s o f Ma r c h!);/*Th i s l i n e d i s p l a y s a q u o t a t i o n */p r i n t f()是 p r i n t f()是个标准的库函数,它将引号内的信息输出到屏幕上,在这个例 子里,调用这个函数会显示引号内的一段警示语:双引号内的字符串称为字符 串字面量。注意这行代码用分号作为结尾。C入门经典(第4版)入门经典(1.5.7 参数 包含在函数名(如上面语句中的p r i n t f()函数)包含在函数名(如上面语句中的pr i n t
39、 f()函数)后的圆括号内的项称为参数,它指定要传送给函数的数据。当传送给函数的参数多于一个时,要用逗号分开。在上面的例子中,函数的参数是双引号内的文本字符串。如果不喜欢例子中引 号内的文本,可以改用自己想输出的句子。例如,使用马克白(Ma c b e t h)的一 号内的文本,可以改用自己想输出的句子。例如,使用马克白(Ma c b e t h)的一 句话:p r i n t f(Ou t,p r i n t f(Ou t,d a m n e d Sp o t!Ou t I s a y!);修改源代码后,必须再次编译及链接程序,才可执行。C入门经典(第4版)入门经典(1.5.8 控制符p a
40、 g e 6 反斜杠(反斜杠()在字符串里有特殊的意义,它表示转义序列的开始。转义序列可 以在字符串中插入无法指定的字符,例如制表符及换行,或编译器在某些情况 下会混淆的字符,例如双引号一般用于界定字符串。反斜杠后面的字符表示是 哪种转义序列。在这个例子里,n 哪种转义序列。在这个例子里,n 表示换行。还有其他许多转义序列。显然,反斜杠是有特殊意义的,所以需要一种方式在字符串中指定反斜杠。为此,应 使用两个反斜杠(。同样,如果要输出双引号,就用 使用两个反斜杠()。同样,如果要输出双引号,就用 C入门经典(第4版)入门经典(1.6 用C语言开发程序 语言开发程序 如果读者从未写过程序,对C 如
41、果读者从未写过程序,对C语言开发程序的过程就不会很清楚,但它和 我们日常生活的许多事务是相同的,万事开头难。一般首先大致确定要实现的 目标,接着把该目标转变成比较准确的规范。有了这个规范后,就可以制订达 到最终目标的一系列步骤了。就好比光知道要盖房子是不够的,还得知道需要 盖什么样的房子,它有多大,用什么材料,要盖在哪里。这种详细规划也需要 运用到编写程序上。了解问题 详细设计 实施 测试 C入门经典(第4版)入门经典(1.6.1 了解问题 第一步是弄清楚要做什么。在不清楚应提供什么设施:多少间卧房、多 少间浴室、各房间多大等等之前就开始建造房子,会有不知所措之感。所有这 些都会影响建造房子所
42、需的材料和工作量,从而影响整个房子的成本。一般来 说,在满足需求和完成项目的有限资金、人力及时间之间总会达成某种一致。C入门经典(第4版)入门经典(1.6.2 详细设计 要建造房子,必须有详细的计划。这些计划能让建筑工人按图施工,并 详细描述房子如何建造具体的尺寸、要使用的材料等。还需要确定何时完 详细描述房子如何建造具体的尺寸、要使用的材料等。还需要确定何时完 成什么工作。例如,在砌墙之前须先挖地基,所以这个计划必须把工作分为可 管理的单元,以便执行起来井然有序。C入门经典(第4版)入门经典(1.6.3 实施 有了房子的详细设计,就可以开始工作了。每组建筑工人必须按照进度 完成他们的工作。在
43、下一阶段开始前,必须先检查每个阶段是否正确完成。省 略了这些检查,将可能导致整栋房子倒塌。当然,假使程序很大,可以一次编写 当然,假使程序很大,可以一次编写部分。一个部分完成后,再写 下部分。每个部分都要基于详细的设计规范,在进行下一个部分之前,应尽 可能详细地检查每个部分的功能。这样,程序就会逐步完成预期的任务 C入门经典(第4版)入门经典(1.6.4 测试 房子完成了,还要进行许多测试:排水设备、水电设施、暖气等。房子完成了,还要进行许多测试:排水设备、水电设施、暖气等。任何部分 都有可能出问题,这些问题必须解决。这有时是一个反复的过程,都有可能出问题,这些问题必须解决。这有时是一个反复的
44、过程,一个地方的 问题可能会造成其他地方出问题。问题可能会造成其他地方出问题。C入门经典(第4版)入门经典(1.7 函数及模块化编程 到目前为止,“函数”这个词已出现过好几次了,如m a i n()、p r i n t f()、函 到目前为止,“函数”这个词已出现过好几次了,如m a i n()、p r i n t f()、函 数体等。下面将深入研究函数是什么,为什么它们那么重要。大多数编程语言(包含C语言)大多数编程语言(包含C语言)都提供了一种方法,将程序切割成多个段,各段都可以独立编写。在C 各段都可以独立编写。在C语言中,这些段称为函数。一个函数的程序代码与 其他函数是相互隔绝的。函数
45、与外界有一个特殊的接口,可将信息传进来,也 可将函数产生的结果传出去。这个接口在函数的第一行即在函数名的地方指定。C入门经典(第4版)入门经典(1.8 常见错误 错误是生活中的一部分。用C 错误是生活中的一部分。用C语言编写计算机程序时,必须用编译器将源 代码转换成机器码,所以必须用非常严格的规则控制使用C 代码转换成机器码,所以必须用非常严格的规则控制使用C语言的方式。漏掉 一个该有的逗点,或添加不该有的分号,编译器都不会将程序转换成机器码。即使实践了多年,程序中也很容易出现输入错误。这些错误可能在编译 或链接程序时找出。但有些错p a g e 7误可能使程序执行时,表面上看起来正常,却不
46、定时地出错,这就需要花很多时间来跟踪错误了。C入门经典(第4版)入门经典(1.9 要点 i n c l u d e 指令用于 在程序中包含外 部文件的内容 这表示注释的开始 这个文本是一个注 释,它不影响程序 这表示注释的结束 头文件 s t d i o.h 提供 了标准输入输出函 数,p r i n t f()是其中 的一个,它输出要 显示的信息 预处理指令以#符号 开头,指定在编译程 序之前要执行的动 作 v o i d 指 定 函 数 没有返回值 这表示函数 m a i n()的开始 这个起始大括号指 定 m a i n()函数体的 开始 p r i n t f()语 句 显 示 引 号
47、内的文本 每个函数都在 大括号中包含 函数体 结束大括号指定 m a i n()函数的结尾 这些语句可以进行 各种调用 函数体包含可执行 的语句,每个语句都 必须以分号结束 C入门经典(第4版)入门经典(1.10 小结 本章编写了几个C 本章编写了几个C程序。我们学习了许多基础知识,本章的重点是介绍一 些基本概念,而不是详细探讨C 些基本概念,而不是详细探讨C程序语言。现在读者应该对编写、编译及链接 程序很有信心了。也许读者目前对如何构建C 程序很有信心了。也许读者目前对如何构建C程序只有模糊的概念。以后学了 更多的C 更多的C语言知识,编写了一些程序后,就会清楚明白了。1本文由m e n g
48、 5056贡献 p p t 文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。C入门经典(第4版)入门经典(第01章 C语言编程 01章 语言编程 C语言是一种功能强大、简洁的计算机语言,通过它可以编写程序,指挥 计算机完成指定的任务。我们可以利用C语言创建程序(即一组指令)计算机完成指定的任务。我们可以利用C语言创建程序(即一组指令),并让计 算机依指令行事。用C语言编程并不难,本书将用浅显易懂的方法介绍C语言的基础知识,语言编程并不难,本书将用浅显易懂的方法介绍C 读完本章,读者就可以编写第一个C语言程序了,其实C 读完本章,读者就可以编写第一个C语言程序了,其
49、实C语言很简单。C入门经典(第4版)入门经典(1.1 创建 程序 创建C程序 C程序的创建过程有4个基本步骤或过程:编辑,编译,链接,执行。这 程序的创建过程有4 些过程很容易完成(就像翻转手臂一样简单,而且可以随时翻转)些过程很容易完成(就像翻转手臂一样简单,而且可以随时翻转),首先介绍每 个过程,以及它们对创建C 个过程,以及它们对创建C程序的作用。编辑 编译 链接 执行 C入门经典(第4版)入门经典(1.1.1 编辑 编辑过程就是创建和修改C程序的源代码我们编写的程序指令称为源 编辑过程就是创建和修改C程序的源代码我们编写的程序指令称为源 代码。有些C 代码。有些C编译器带一个编辑器,可
50、帮助管理程序。通常,编辑器是提供了 编写、管理、开发与测试程序的环境,有时也称为集成开发环境(缩写为IDE)。编写、管理、开发与测试程序的环境,有时也称为集成开发环境(缩写为IDE)。C入门经典(第4版)入门经典(1.1.2 编译 编译器可以将源代码转换成机器语言,在编译的过程中,会找出并报告 错误。这个阶段的输入是在编辑期间产生的文件,常称为源文件。编译器能找出程序中很多无效或无法识别的错误,以及结构错误,例如 程序的某部分永远不会执行。编译器的输出结果称为对象代码(o b j e c t c o d e),程序的某部分永远不会执行。编译器的输出结果称为对象代码(o b j e c t c