C Primer plus 第五版
VIP免费
2025-02-27
8
0
1.06MB
1634 页
5.9玖币
侵权投诉
在本章中你将学习下列内容
。C 的历史和特性
。编写程序所需的步骤
。关于编译器和链接器的一些知识
。C 的标准。
欢迎来到 C 的世界!C语言是一种强大的专业化编程语言,深受业余和专业编程人员
的欢迎。本章为学习和使用这一强大而流行的语言做准备,并介绍了开发 C程序时最
可能使用的几种环境。
首先,让我们来看看 C的起源及其特性,包括它有哪些优点和缺点。接着我们将了解
编程的起源并探讨编程的一些基本原则。最后,我们讨论在一些常见系统上运行 C程
序的方法。
1.1 C 语言的起源
贝尔实验室的 Dennis Ritchie 在1972 年开发了 C,当时他正在与 Ken Thompson 一
起设计 UNIX 操作系统 。然而,C并不是完全由 Ritchie 构想出来的。它来自
Thompson 的B语言,而 B语言则来自。。噢,这又是另外一个故事了。重要的是,C
是作为从事实际编程工作的程序的一种工具而出现的,所以其主要目标是成为一种有
用的语言。
多数语言都以实用为目标,但它们往往也会考虑其他一些方面。例如 Pascal 的主要
目标是为学习良好的编程原则提供一个扎实的基础,而 BASIC 则是模仿英语,以便让
不熟悉计算机的学生能够轻松地学会这种语言。这些目标很重要,但它们不总是与实
际的使用需要相符。而 C 则是为编程人员开发的语言,这使得它成为当今人们首先的
编程语言之一。
1.2 使用 C 语言的理由
在过去的 30 年中,C已经成为最重要和流行的编程语言之一。它之所以得到发展,
是因为人们尝试使用它后喜欢它。过去 10 年中,许多人从 C转而使用更强大的 C++语
言,但 C有其自身的优势,仍然是一种重要的语言,而且它还是通往 C++的必由之路。
学习 C的过程中,你将认识到它的许多优点(见图 1.1)。现在让我们首先来看其中的
几个优点。
1.2.1 设计特性
C 是一种融合了控制特性的现代语言,而我们已发现在计算机科学的理论和实践中,
控制特性是很重要的。其设计使得用户可以自然地采用自顶向下的规划,结构化的编
程,以及模块化的设计。这种做法使得编写出的程序更可靠,更易懂。
1.2.2 高效性
C 是一种高效的语言。 在设计上它充分利用了当前计算机在能力上的优点。C程序往
往很紧凑且运行速度快。事实上,C可以表现出通常只有汇编语言才具有的精细控制
能力(汇编语言是特定的CPU 设计所采用的一组内部指令的助记符。不同的CPU 类型
使用不同的汇编语言)。如果愿意,你可以细调程序以获得最大速度或最大内存使用
率。
1.2.3 可移植性
C 是一种可移植语言。这意味着,在一个系统上编写的 C程序经过很少改动或不经修
改就可以其他系统上运行。如果修改是必要的,则通常只须改变伴随主程序的一个头
文件中的几项内容即可。多数语言原本都想具有可移植性,但任何曾将IBM PC BASIC
程序转换为 Apple BASIC 程序(它们还是近亲)的人,或者试图在 UNIX 系统上运行
一个 IBM 大型机
FORTRAN 程序的人都知道,移植至少是在制造麻烦。C 在可移植性方面处于领先地位。
C 编译器(将 C代码转换为计算机内部使用的指令的程序)在大约40 多种系统上可用,
包括从使用 8位微处理器的计算机到 Cray 超级计算机。不过要知道,程序中为访问特
定硬件设备(例如显示器)或操作系统(如 Windows XP 或OS X)的特殊功能而专门
编写的部分,通常是不能移植的。
由于 C与UNIX 的紧密联系,UNIX 系统通常都带有一个 C编译器作为程序包的一部
分。Linux 中同样也包括一个 C编译器。个人计算机,包括运行不同版本的 Windows
和 Macintosh 的PC,可使用若干种C编译器。所以不论你使用的是家用计算机,专业
工作站还是大型机,都很容易得到针对你特定系统的 C编译器。
1.2.4 强大的功能和灵活性
C 强大而又灵活(计算机世界中经常使用的两个词)。例如,强大而灵活的 UNIX 操
作系统的大部分便是用 C编写的。其他语言(如
FORTRAN,Perl,Python,Pascal,LISP,Logo 和BASIC)的许多编译器和解释器也
都用 C编写的。结果是,当你在一台UNIX 机器上使用 FORTRAN 时,最终是由一个 C
程序负责生成最后的可执行程序的。C程序已经用于解决物理学和工程学问题,甚至
用来为《角斗士》这样的电影制造特殊效果。
1.2.5 面向编程人员
C 面向编程人员的需要。它允许你访问硬件,并可以操纵内存中的特定位。它具有丰
富的运算符供选择,让你能够简洁地表达自己的意图。在限制你所能做的事情方面,C
不如 Pascal 这样的语言严格。这种灵活性是优点,同时也是一种危险。优点在于:许
多任务(如转换数据形式)在 C中都简单得多。危险在于:使用 C时,你可能会犯在
使用其他一些语言时不可能犯的错误。C给予你更多的自由,但同时也让你承担更大
的风险。
另外,多数 C实现都有一个大型的库,其中包含有用的 C函数。这些函数能够处理编
程人员通常会面对的许多需求。
1.2.6
C 确实有一些缺点。和人一样,缺点和优点往往是同一特征相对的两个方面。例如,
我们前面曾说过,C在表达方面的自由会增加风险,尤其是 C 对指针(在本书后面部
分将学到)的使用,意味着你可能会犯非常难以追踪的编程错误。正如以前一位计算
机专家曾经指出的,自由的代价是永远的警惕。
C 的简洁性与其丰富的运算符相结合,使其可能会编写出极难理解的代码。没有谁强
迫你编写含糊难懂的代码,但存在这样的可能性。试问,除 C 之外还有哪种语言存在
一年一度的“含糊代码”(Obfuscated Code)竞赛呢?
此外,C 还有许多的优点,但毫无疑问,C 还有一些缺点。我们不想在这一点上多费
笔墨,还是换一个新的话题吧。
1.3 C 语言的发展方向
20 世纪80 年代初,C 在 UNIX 系统的小型机世界中已经是主导语言了,从那时开始,
它已经扩展到个人计算机(微型机)和大型机(庞然大物), 许多软件开发商都首选
C 语言来开发其子处理程序,电子表格软件,编译器和其他产品。这些公司知道,C
可以产生紧凑而高效的程序。更重要的是,他们知道这些程序易于修改而且易于适应
新的计算机模式。
对于公司和熟悉 C 语言的人有益的东西,对其他用户同样有益。越来越多的计算机
用户已转身使用 C 以便利用其优点。不一定非得是计算机专业人员才能使用 C
在20 世纪90 年代,许多软件开发商开始转身使用 C++语言来进行大的编程项目。
C++向 C 语言嫁接了面向对象编程工具(面向对象编程是一种哲学思想,它试图让语
言来适应问题,而不是让问题来适应语言)。C++差不多是 C 的一个超集,意味着任
何 C 程序都同时是,或差不多是一个有效的 C++程序。通过学习 C,你还会学习到
C++的许多知识。
不管 C++ 和 Java 这样较新的语言如何流行,C 在软件产业中仍然是一种重要的技
能,在最想获得的技能中,它一般都列在前 10 名。特别是在嵌入式系统的编程中,C
已经开始流行。也就是说,它将用来为汽车,照相机,DVD 播放器和其他现代化设备
中逐渐普及的微处理器编程。同样,C 已开始进入长期以来一直属于 FORTRAN 的科
学编程领域。最后,由于它是一种适合用来开发操作系统的语言,C 在 Linux 的开发中
也扮演着重要的角色。因此,在 21 世纪的前 10 年中,C 仍将保持强劲的势头。
简言之,C 是最重要的编程语言之一,并将继续如此,如果你想找一份编写软件的工
作,则首先你应该能够回答“是”的一个问题就是:“请问 ,你会使用 C吗?”
1.4 计算机工作的基本原理
既然打算学习如何用 C 编程,你就应了解计算机工作原理方面的一些知识。这些知
识会帮助你理解用 C 编写程序与运行该程序时最终会发生的事情之间的联系。
现代计算机可分为几个部件。中央处理单元(或称 CPU)担负着绝大部分的计算工作,
随机访问存储器(或称 RAM)作为一个工作区来保存程序和文件;永久存储器,一般
是硬盘,即使在计算机关机时也能记下程序和文件;还有各种外围设备(如键盘,鼠
标和监视器)用来提供人与计算机之间的通信。CPU 负责处理程序,所以我们集中来
讨论它的功能。
CPU 的工作非常简单,至少在我们所做的这一简短的描述中是这样的。它从内存中获
取一个指令并执行该指令,然后从内存中获取下一个指令并执行,。一个千兆 CPU 可
以在一秒种内进行大约一亿次这样的操作,所以 CPU 能以惊人的速度来从事其枯燥的
工作。CPU 有自己的小工作区,该工作区由若干个寄存器(registers)组成,每个寄存
器可以保存一个数。一个寄存器保存下一条指令的内存地址,CPU 使用该信息获取下
一条指令。获取一条指令后,CPU 在另一个寄存器中保存该指令并将第一个寄存器的
值更新为下一条指令的地址。CPU 只能理解有限的指令(指令集)。还有,这些指令
是相当具体的,其中许多指令要求计算机将一个数从一个位置移动到另一个位置,例
如,从内存单元移到寄存器。
摘要:
展开>>
收起<<
在本章中你将学习下列内容。C的历史和特性。编写程序所需的步骤。关于编译器和链接器的一些知识。C的标准。欢迎来到C的世界!C语言是一种强大的专业化编程语言,深受业余和专业编程人员的欢迎。本章为学习和使用这一强大而流行的语言做准备,并介绍了开发C程序时最可能使用的几种环境。首先,让我们来看看C的起源及其特性,包括它有哪些优点和缺点。接着我们将了解编程的起源并探讨编程的一些基本原则。最后,我们讨论在一些常见系统上运行C程序的方法。1.1C语言的起源贝尔实验室的DennisRitchie在1972年开发了C,当时他正在与KenThompson一起设计UNIX操作系统。然而,C并不是完全由Ritchie...
声明:本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。玖贝云文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知玖贝云文库,我们立即给予删除!
相关推荐
-
工程建设招标投标合同(附件)VIP免费
2024-11-15 16 -
工程建设招标投标合同(动员预付款银行保证书)VIP免费
2024-11-15 11 -
工程建设招标设标合同条件(第1部分)VIP免费
2024-11-15 11 -
工程建设招标设标合同合同条件(第3部分)VIP免费
2024-11-15 10 -
工程建设招标设标合同合同条件(第2部分)VIP免费
2024-11-15 13 -
工程建设监理委托合同VIP免费
2024-11-15 14 -
工程建设监理合同标准条件VIP免费
2024-11-15 11 -
工程技术资料目录VIP免费
2024-11-15 13 -
工程技术咨询服务合同VIP免费
2024-11-15 13 -
工程建设招标投标合同(投标邀请书)VIP免费
2024-11-15 35
分类:计算机
价格:5.9玖币
属性:1634 页
大小:1.06MB
格式:DOCX
时间:2025-02-27


渝公网安备50010702506394