C语言概述

来源:互联网 发布:机器学习实战smo算法 编辑:程序博客网 时间:2024/06/02 06:13

第 1 章 C 语言概述
C语言是一种“中级语言”,既具有高级语言的特点又具有低级语言的特点;既适合于开发系统软件又适合于编写应用程序,是一门应用性较强的计算机编程语言。

1.1 C 语言的发展简史
在 C 语言产生之前,人们编写系统软件主要是使用汇编语言。由于用汇编语言编写的程序依赖于计算机硬件,其可读性和可移植性都比较差;而一般高级语言又不具备低级语言能够直观地对硬件实现控制和操作、程序执行速度快的特点。在这种情况下,人们迫切需要一种既有一般高级语言特性,又有低级语言特性的语言。于是 C 语言就应运而生了。C 语言的产生和发展与 UNIX 有很大的关系,其发展历程简述如下。
1972~1973 年间,美国贝尔实验室的 D.M.Ritchie 在 B 语言的基础上设计出 C 语言,
当时的 C 语言只是为描述和实现 UNIX 操作系统的一种工作语言,且只在贝尔实验室内部使用。
1973 年, K.Thompson 和 D.M.Ritchie 两人合作,将 UNIX 90%以上代码用 C 语言改写,即 UNIX 第 5 版。
1975 年, UNIX 第 6 版公布后, C 语言突出的优点引起人们普遍注意。
1977 年,出现了可移植的 C 语言。
1978 年, UNIX 第 7 版公布, K.Thompson 和 D.M.Ritchie 以该版 C 编译程序为基础,合著《 The C Programming Language》一书,该书所介绍的 C 语言,成为后来广泛使用 C语言版本的基础,被称为标准 C 语言。
1983 年,美国国家标准化协会(ANSI)根据 C 语言问世以来的各种版本,对 C 语言进行发展和扩充,并制定了新的标准,称为 ANSI C。
1990 年,国际标准化组织 ISO 制定了 ISO C 标准。
1972 年以来, C 语言几经修改和发展,出现了多个版本。目前在微机上广泛使用的版本有多个,各有特点,但它们一般都是以 ANSI C 为基础的,其中比较常用的版本有 Microsoft  C 和 Turbo C 等。
1.2 C 语言的特点
C 语言是一种“中级语言”,既具有高级语言的特点又具有低级语言的特点;既适合于开发系统软件又适合于编写应用程序,被广泛应用于事务处理、科学计算、工业控制、数据库技术等领域。概括起来, C 语言主要具有以下几个特点。
1. 语言简洁、紧凑,使用方便、灵活
C 语言只有 32 个关键字和 9 种控制语句,书写紧凑,压缩了一切不必要的程序组成成分。C 语言程序书写自由,可以一行一个语句,也可以一行多个语句,同时还可使用任何用户自己熟悉的文本编辑器来输入源程序,语法限制不太严格,很多语句都有多种书写形式,程序设计自由度大。
C 语言的 32 个关键字如下:
auto   break   case   char   const   continue   default  do   double   elseenum   extern  float   for   goto   if   int   long   register  return  short signed  sizeof   static struct switch   typedef   union  unsigned  void  volatile while
2. 数据结构丰富
C 语言的基本数据类型有整型、实型、字符型等,在此基础上还可创建数组、指针、结构体和共用体等复杂数据类型。 C 语言的灵活性和应用能力优于其他计算机语言,如使用指针,可以作为函数的参数传递、动态分配内存空间、简化数组处理等。使用 C 语言可以很方便地实现复杂的数据结构(如链表、树、栈等运算),丰富的数据结构极大地增强了 C 语言的处理功能。
3. C 语言运算符丰富
C 语言共提供 34 种运算符,按优先级大小划分为 15 个等级,其中包括一些 C 语言特有的运算符,如自增自减运算符、逗号运算符、求字节运算符、强制类型转换运算符、赋值运算符等。使用这些运算符,可以使 C 语言实现在其他高级语言中难以实现的运算。
4. C 语言是结构化的语言
C 语言具有结构化的控制语句,如 if…else 语句、 while 语句、 switch 语句、 for 语句等。使用这些语句,可以方便地控制程序流程,实现顺序、选择、循环三种结构化程序的基本结构。
5. C 语言是模块化的语言
开发一个较大的程序,需要很多人经过较长时间的努力才能完成。一般来说,一个较大的应用程序往往被分为若干个模块,对于较大的模块还可以细分为较小的模块,每个模块对应一个函数或过程,实现特定的功能。相同功能的模块可用同一函数或过程来实现,因此用函数或过程来实现程序的模块化,可以大大减少工作量。只要善于利用函数或过程,就可提高编程效率。
C 语言是模块化的语言,它以函数作为程序的基本单位。在进行 C 语言程序设计时,可将一些常用的功能模块编写成函数,放在函数库中供其他函数调用。
6. 程序可移植性好、代码执行效率高
汇编语言一般要与某种机器硬件对应,难以移植,而 C 语言在不同机器上的编译程序大约有 80%的代码是公共的,可以很方便地移植到各种型号的计算机和各种操作系统中。同时, C 语言程序所生成的目标代码的质量高于其他高级语言,执行效率高,一般只比汇编语言程序所生成的目标代码的执行效率低 10%~20%。C 语言的优点很多,但也存在一些不足和缺点。如,运算符优先级太多,尤其是有个别运算符的优先级还与我们常规约定有所不同,不便记忆和掌握;自由转换虽然比较方便,但类型检查不严,增加了不安全的因素; C 语言使用灵活、变化多样,也增加了学习的难度,初学者较难掌握。
1.3 C 语言程序的构成和书写规则
观察以下两例,可以发现 C 语言程序的构成和书写规则。
【例 1-1】 用 C 语言编程显示“ This is my program!”。
/*程序功能:显示"This is my program!"*/main() /*主函数*/{    printf("This is my program!"); /*输出"This is my program!"*/}

【例 1-2】 用 C 语言编程求两个数之和,如 10+90。

/*程序功能:求两数之和*/#include<stdio.h> /*预处理命令*/main() /*主函数*/{   int num1,num2,sum; /*定义 3 个整型变量*/   num1=10; /*将 10 赋给变量 num1*/   num2=90; /*将 90 赋给变量 num2*/   sum=num1+num2; /*计算两个数之和,然后赋给变量 sum*/   printf("sum=%d\n",sum); /*输出结果: sum=100, \n 表示回车换行 */}

1.3.1 C 语言程序的构成

(1) 一个源程序都有且只有一个 main 函数,即主函数, C 语言的程序总是从主函数开始执行。
(2) 源程序中可以有预处理命令,预处理命令通常放在源文件或源程序的最前面。
(3) 每一个语句都必须以分号结尾,但预处理命令、函数头和右花括号“ }”之后不加分号。
(4) 标识符和关键字之间,至少加一个空格以示间隔,空格的数目不限。
(5) 源程序中需要解释和说明的部分,可用“ /*······*/”加以注释,注释是给程序阅读者看的,机器在编译和执行程序时,注释将被忽略。
(6) 一个 C 语言源程序可以由一个或多个源文件组成。
(7) 每个源文件可由一个或多个函数组成。
其中,后两点是相对于较大的 C 语言程序而言的,因为上述例题很简单,没有体现出来,但在实际工作中却较常用。
1.3.2 C 语言程序的书写规则
在书写 C 语言程序时,一般要注意以下几点:
(1) 在 C 语言中,虽然一行可写多个语句,一个语句也可占多行,但建议一行只写一个语句。
(2) 用大括号括起来的部分,通常表示同一层次结构,大括号一般与该结构上一层次语句的第一个字母对齐,且左、右两个大括弧分别独占一行。
(3) 一般采用缩进格式书写程序,以提高程序的可读性和清晰性。
(4) 除非另有约定, C 语言源代码一般用小写字母书写。
(5) 在程序代码中,应加上必要的注释。
1.4 C 语言应用程序的编译与运行
0 0
原创粉丝点击