在C 语言中,具有一定功能、相对独立的程序段称为函数。无论主函数main()位于程序中的什么位置,程序执行时总是从main()开始。C 语言程序的一般结构如图5.1 所示。它具有以下特点:图5.1C 程序中的函数C 语言允许一个程序由多个源文件组成,每个源文件可以独立编译,一个源文件可以被不同的程序使用。一个C 程序有且仅有一个主函数main,主函数可以放在任何一个源文件中,程序总是从主函数开始执行。......
2023-10-21
1.C 语言的发展
在C 语言诞生以前,系统软件主要是用汇编语言编写的。由于汇编语言程序依赖于计算机硬件,其可读性和可移植性都很差;但一般的高级语言又难以实现对计算机硬件的直接操作,于是人们盼望有一种兼有汇编语言和高级语言特性的新语言——C 语言。
C 语言是在B 语言的基础上发展起来的,它的根源可以追溯到1960 年出现的ALGOL 60。ALGOL 60 是一种面向问题的高级语言,但离硬件比较远,不宜用来编写系统软件。1963 年英国剑桥大学推出了CPL 语言,它是在ALGOL 60 的基础上发展起来的,更接近硬件,但规模较大,难以实现。1967 年,英国剑桥大学的Martin Richards 对CPL 做了简化,推出了BCPL语言。1970 年,美国贝尔实验室的Ken Thompson 以BCPL 为基础,设计出了简单而且很接近硬件的B 语言,并用B 语言编写了第一个UNIX 操作系统,在PDP-7 上实现。1971 年在PDP-11/20 上实现了B 语言,并编写了UNIX 操作系统。但B 语言过于简单,功能有限。1972—1973 年,贝尔实验室的D.M.Ritchie 在B 语言基础上设计出了C 语言。C 语言既保持了BCPL 和B 语言的优点,又克服了它们的缺点。1973 年,Ken Thompson 和
D.M.Ritchie合作把UNIX 的90%以上用C 语言改写,即UNIX 第5 版。
虽然对C 语言进行了多次改进,但主要还是在贝尔实验室内部使用。直到1975 年UNIX第6 版公布后,C 语言的突出优点才引起人们的注意。1977 年出现了不依赖于机器的C 语言编译文本“可移植C 语言编译程序”,使C 语言移植到其他机器时所需做的工作大大简化,这也推动了UNIX 操作系统迅速在各种机器上的实现。可以说,C 语言与UNIX 是一对孪生兄弟,在发展中相辅相成。1978 年以后,C 语言已先后移植到大、中、小、微型机上,已独立于UNIX和PDP 了。
1983 年,美国国家标准化协会(ANSI)根据C 语言问世以来各种版本对C 语言的发展和扩充,制定了新的标准,称为ANSI C。1987 年ANSI 又公布了C 语言新标准——87ANSI C。1990 年,国际标准化组织ISO 接受了87 ANSI C 为C 语言的国际标准。目前流行的C 编译系统都是以ANSI C 为基础的。
目前流行的C 语言的编译器有Microsoft C/C++、Borland C/C++、Visual C++2010、 Win-TC、Turbo C/C++for Windows 集成实验与学习环境等,各种版本基本部分是相同的,但略有差异,因此应了解所用计算机系统配置的C 编译系统的特点和规定。
2.C 语言的特点
C 语言之所以能存在和发展,并具有生命力,在于它有不同于其他语言的特点。C 语言的主要特点如下:(www.chuimin.cn)
(1)简洁、紧凑。C 语言一共只有32 个关键字、9 种控制语句。
(2)运算符丰富。C 语言共有44 种运算符。它把括号、赋值、强制类型转换等都作为运算符处理,从而使C 语言的运算类型极其丰富,表达式多样化。
(3)具有丰富的数据类型。C 语言具有整型、实型、字符型、数组类型、指针类型、结构体类型、共同体类型等,能方便地构造更加复杂的数据结构(如链表、树、栈等)。
(4)是一种结构化的程序设计语言。C 语言具有结构化的控制语句(如if、switch、for、while、do…while)。用函数作为程序的模块单位,便于实现程序的模块化。
(5)语法限制不严格,程序设计灵活。例如,C 语言不检查数组下标越界,C 语言不限制对各种数据转化(编译系统可能对不合适的转化进行警告,但不限制),不限制指针的使用,程序正确性由程序员保证。灵活和安全是矛盾的,对语法限制的不严格可能也是C 语言的一个缺点,黑客可能使用越界的数组攻击用户的计算机系统。
(6)能进行位操作,可以直接对部分硬件进行操作。例如,C 语言可以直接操作计算机硬件,如寄存器、各种外设I/O 端口等;C 语言的指针可以直接访问内存物理地址;C 语言类似汇编语言的位操作可以方便地检查系统硬件的状态。
(7)可移植性好。用C 语言编写的程序基本上不需要修改或只需要少量修改就可移植到其他的计算机系统或操作系统中。
(8)C 语言编译后生成的目标代码小,质量高,程序的执行效率高。有资料显示其效率只比汇编语言代码的效率低15%左右。
有关C语言程序设计实用教程的文章
在C 语言中,具有一定功能、相对独立的程序段称为函数。无论主函数main()位于程序中的什么位置,程序执行时总是从main()开始。C 语言程序的一般结构如图5.1 所示。它具有以下特点:图5.1C 程序中的函数C 语言允许一个程序由多个源文件组成,每个源文件可以独立编译,一个源文件可以被不同的程序使用。一个C 程序有且仅有一个主函数main,主函数可以放在任何一个源文件中,程序总是从主函数开始执行。......
2023-10-21
计算机语言的种类非常多,总的来说可分成机器语言、汇编语言和高级语言三大类。计算机发明之初,人们只能写出一串串由0、1 组成的指令序列交由计算机执行,这种计算机能够认识的语言,就是机器语言。然而计算机是不认识这些符号的,这就需要一个专门的程序负责将这些符号翻译成二进制的机器语言,这种翻译程序被称为汇编程序。......
2023-10-21
在C 语言中,对文件的基本操作包括文件的打开与关闭、文件的读和写等。表9.1文件操作方式例如:打开当前目录下的C.DAT 文件,这是一个二进制文件,只允许进行读操作,并使fp 指针指向该文件。应该养成在程序终止前关闭所有文件的习惯,如果不关闭文件将会丢失数据。......
2023-10-21
switch 语句是多分支选择语句。程序运行结果:说明:例3.12 中出现了break 语句,在C 语言中,可以利用break 语句终止该语句下面所有case 子句和default 子句的执行,直接跳出switch 语句。......
2023-10-21
从函数的定义来看,可以分为标准函数和自定义函数两种。不同的编译系统提供的库函数的名称和功能可能会有所区别。从函数的形式看,函数分为无参函数和有参函数两类。有参函数在调用函数时,在主调函数和被调函数之间有数据传递。从函数调用结果分类,函数又可以分为有返回值函数和无返回值函数。......
2023-10-21
C 语言中所使用的库函数并不是C 语言本身的一部分,它是由编译程序根据一般用户的需要编制并提供给用户使用的一组程序。C 的库函数极大地方便了用户,同时也补充了C 语言本身的不足。库函数具有明确的功能、入口调用参数和返回值。常见的库函数,主要分类如下:I/O 函数。这是能正确使用库函数的必要条件。......
2023-10-21
在C 语言程序中,是通过对函数的调用来执行函数体,其过程与子程序调用相似。在调用函数时,大多数情况下主调函数和被调函数之间有数据传递。图5.2程序运行结果函数调用在程序中起一个表达式或者语句的作用。在调用函数时,有3 种不同的方式。这就要求该函数必须是有返回值的。getchar 函数调用作为表达式使用,即赋值表达式的右操作。......
2023-10-21
相关推荐