计算机程序或者软件程序(简称程序)是指一组指示计算机每一步动作的指令,通常用某种程序设计语言编写,运行于某种目标体系结构上。程序设计语言通常是一个能完整、准确和规则地表达人们的意图,并用以指挥或控制计算机工作的“符号系统”。C语言正是这样一种面向过程的高级程序设计语言,它不仅是开发系统软件的必备工具,而且也是开发应用软件的常用程序设计语言,语法源自ANSI C标准(ANSI即美国国家标准协会)。经过长时间的改进和发展,目前C语言的应用范围已相当广,并且具有可移植性和执行效率高等特点。
本章主要内容
& C语言的发展与特点
& C程序的基本组成
& 程序算法的概念
& 使用Visual C++编写一个简单的输入/输出程序
一台计算机是由硬件系统和软件系统两大部分构成的,硬件是物质基础,而软件可以说是计算机的灵魂。没有软件,计算机就是一台“裸机”,是什么也不能干的,有了软件,才能灵动起来,成为一台真正的“电脑”。所有的软件,都是用计算机语言编写的。计算机程序设计语言的发展,经历了从机器语言、汇编语言到高级语言的历程,而C语言正是众多高级语言中的一种。
电子计算机所使用的是由“0”和“1”组成的二进制数,二进制是计算机的语言的基础。计算机发明之初,人们只能用计算机的语言去操纵计算机,也就是写出一串串由“0”和“1”组成的指令序列交由计算机执行,这种语言就是机器语言。编写机器语言是一件十分痛苦的事情,特别是在程序有错需要修改时更是如此。由于每台计算机的指令系统往往各不相同,所以,在一台计算机上执行的程序,要想在另一台计算机上执行,必须另编程序,造成重复工作。但由于使用的是针对特定型号计算机的语言,故而运算效率是所有语言中最高的。机器语言,是第一代计算机语言。
为了减轻使用机器语言编程的痛苦,人们进行了一种有益的改进:用一些简洁的英文字母、符号串来替代一个特定的指令的二进制串,比如,用“ADD”代表加法,“MOV”代表数据传递等。这样一来,人们很容易读懂并理解程序在干什么,纠错及维护都变得方便了,这种程序设计语言就称为汇编语言,即第二代计算机语言。然而计算机是不认识这些符号的,这就需要一个专门的程序,专门负责将这些符号翻译成二进制数的机器语言,这种翻译程序被称为汇编程序。汇编语言同样十分依赖于机器硬件,移植性不好,但效率仍十分高,针对计算机特定硬件而编制的汇编语言程序,能准确发挥计算机硬件的功能和特长,程序精炼而质量高,至今仍是一种常用而强有力的软件开发工具。
从最初与计算机交流的痛苦经历中,人们意识到,应该设计一种这样的语言,这种语言接近于数学语言或人的自然语言,同时又不依赖于计算机硬件,编出的程序能在所有机器上通用。经过努力,1954年,第一个完全脱离机器硬件的高级语言——FORTRAN问世了,40多年来,共有几百种高级语言出现,有重要意义的为几十种,其中影响较大、使用较普遍的有FORTRAN、ALGOL、COBOL、BASIC、Pascal、C、PROLOG、C++、Visual Basic、Delphi、Java等。
高级语言的发展也经历了从早期语言到结构化程序设计语言、从面向过程到非过程化程序语言的过程。相应地,软件的开发也由最初的个体手工作坊式的封闭式生产,发展为产业化、流水线式的工业化生产。
高级语言的下一个发展目标是面向应用,也就是说:只需要告诉程序你要干什么,程序就能自动生成算法,自动进行处理。这就是非过程化的程序语言。
由于汇编语言程序依赖于计算机硬件,其可读性和可移植性都很差,而一般的高级语言又难以实现对计算机硬件的直接操作(对硬件直接操作正是汇编语言的优势),于是人们盼望有一种兼有汇编语言和高级语言特性的新语言。C语言就是在这种背景下应运而生的。
C语言是贝尔实验室于20世纪70年代初期研制出来的,并随着UNIX操作系统的日益广泛使用而迅速得到推广。后来,C语言又被多次改进,并出现了多种版本。20世纪80年代初(1983年),ANSI根据C语言问世以来的各种版本对C语言进行了改进和扩充,制定了ANSI C标准(并于1989年再次做了修订)。本书以ANSI C标准为基础介绍C语言。
目前,在微机上广泛使用的C语言编译系统有Visual C++ 6.0(简称VC)、Dev C++、Eclipse的CDT等。虽然它们的基本部分都是相同的,但还是有一些差异,所以读者应注意自己所使用的C编译系统的特点和相关规定(可参阅相应编译系统配备的使用手册和用户指南了解这些信息)。本书选定的上机环境是Visual C++ 6.0系统。
C语言是近年来较流行的高级程序设计语言之一,许多大型软件均是用C语言编写的(如UNIX操作系统)。C语言同时具有汇编语言和高级语言的双重特性。具体来说,C语言的主要特点如下:
· C语言是一种模块化的程序设计语言。模块化的基本思想是将一个大的程序按功能分割成一些模块,使每一个模块都成为功能单一、结构清晰、容易理解的函数。
· 语言简洁,结构紧凑,使用方便、灵活。C语言一共只有32个关键字和9条控制语句,且源程序书写格式自由。
· 运算符极其丰富,数据处理能力强。C语言一共有45种运算符,例如,自增(++)和自减(-)运算符、复合赋值运算符、位运算符及条件运算符等。同时,C语言可以实现其他高级语言较难实现的功能。
· 可移植性好。C语言程序基本上可以不作任何修改,就能运行于各种不同型号的计算机和各种操作系统环境上。
· C语言提供了某些接近汇编语言的功能。例如可以直接调用系统功能,实现对硬件的操作,从而有利于编写系统软件。
总之,由于C语言的上述特点,使得C语言越来越受到广泛的重视。
在C语言的基础上,1983年贝尔实验室又推出了C++语言。C++语言进一步扩充和完善了C语言,成为一种面向对象的程序设计语言。C语言是C++语言的基础,C++语言和C语言在很多方面是兼容的。掌握了C语言,再进一步学习C++语言就更容易和便利,并能达到事半功倍的效果。