1.3.1 C语言的发展历史
1972年,美国贝尔实验室的Dennis Ritchie设计出C语言。
1963年英国剑桥大学推出了CPL(Combined Programming Language)语言,虽然该语言很接近硬件,但其规模较大.并未在机器上真正实现。
1967年剑桥大学的Martin Rich-ards对CPL语言进行了简化,推出了BCPL( Basic Combined Programming Language) 语言。
1970年美国贝尔实验室的KenThompson对BCPL语言又做了进一步简化,设计出了更接近硬件的B语言,并用B语言在PDP-7机器上实现了UNIX操作系统。
1973年,Dennis Ritchie和Ken Thompson对UNIX操作系统进行了重写,其中90%以上的代码采用的是C语言,很大程度上提高了UNIX操作系统的可移植性和可读性。
1983年,美国国家标准协会(AmericanNational Standards Institute,ANSI)制定了一-套C语言标准,称为ANSIC。目前使用的如Microsoft C、TurboC等版本均以ANSI C为标准,同时各自分别进行了一些扩充。
1.3.2 C语言的特点
(1)C语言语句简洁紧凑,使用方便灵活。
(2)运算符丰富,表达能力强。
(3)C语言程序可移植性好。
(4)生成的目标代码质量越高,运行效率越高。
(5)语言处理能力强。
(6)C语言是一种结构化语言。
尽管C语言有众多的优点,但C语言也有其不足之处:主要表现为C语言对语法检查不严格,许多时候需要程序员自己保证程序的正确,而这对初学者是很难做到的。例如,数据类型检查不严格.表达式运算会出现二义性;对数组下标越界不检查,导致程序出错。除此之外,由于C语言运算符较多,初学者很难掌握其运算的优先级与结合性,等等。
对C的这些优点与不足之处,需要读者在不断地学习实践中,逐渐适应与体会。
1.3.3 C语言的约定
(1)标识符
由字母、数字和下划线组成,其中第一个字符必须是字母或下划线,例如,_00、print、FOR均是合法的标识符,而&a、-123、a b均是不合法的标识符。
英文字母的大小写是有区别的;
命名最好做到“见名知义”,增加程序的可读性;
标识符的有效长度为1~255个字符;
(2)关键字
类别 | 关键字 |
---|---|
数据类型关键字(12个) | char,double,enum,float,int,long,short,signed,struct,union,unsigned,void |
控制语句关键字(12个) | break,continue,case,do,default,else,for,goto,if,return,switch,while |
存储类型关键字(4个) | auto,extern,register,static |
其它关键字(4个) | const,sizeof,typedef,volatile |
注意:C语言的关键字都用小写字母书写,不能用大写字母书写。
(3)用户自定义标识符
程序中定义的变量名、数据类型名、函数名和符号常量名。
(4)预定义标识符
头文件和库函数中定义的一些标识符(例如scanf、printf等),全部统称为预定义标识符。
C语言允许用户定义的标识符与预定义标识符同名,但此时预定义标识符就失去了原有作用。
(5)分隔符
逗号用于分隔变量名。
空格空格分隔各单词。
2.C语言的语法成分
(1)常量
常量是有数据类型的,例如,整型常量2、实型常量2.0、字符型常量’2’ 、字符串常量”C Programming.”等。
(2)变量
变量定义的一般形式是:
类型名 变量名;
例如,例1.1中的 int a,b,c;
定义了三个整型变量。
(3)运算符
算术运算符:+(加)、-(减)、*(乘)、/(除)、%(求余);
关系运算符:>(大于)、>=(大于等于)、==(等于)、<(小于)、<=(小于等于)等等。
参与运算时只要求有一个数据对象的称为单目运算符,有两个数据对象的称为双目运算符,有三个数据对象的称为三目运算符。
(4)表达式
运算符有优先级,例如,表达式 b*b-4*a*c>0
中,由于算术运算优先于关系运算,所以先计算 b*b-4*a*c
,再做关系比较运算 >
。
(5)语句
在C语言中,语句是程序最基本的执行单位,以分号结尾。
(6)函数定义与调用
函数十完成特定功能的小模块,是C语言中唯一的种子程序。
(7)输入与输出
C语言没有提供用于数据输入及输出的语句,所有的输入与输出都是通过系统提供的有关函数(如scanf()和printf()函数)来实现的。
1.4C程序的编辑、编译、链接和运行
编辑:将编写的C语言代码以文件的形式存储在计算机中,其拓展名为 .c
- 编译:通过词法分析和语法分析,在确认所有的指令都符合语法规则之后,将其翻译成二进制目标程序文件,其拓展名为 .obj
- 编译过程中的错误多为词法和语法错误,如果原文件存在这些错误,则编译系统会给出错误提示信息,应根据错误提示信息查找错误并改正源程序,再次重新编译,直到没有错误
- 链接:将目标程序与系统提供的库函数或是其他目标程序进行链接,得到最终的二进制可执行文件,其拓展名为 .exe
- 运行:双击 .exe 可执行文件运行后结果会显示在屏幕上
- 可执行文件运行后要验证程序的运行结果,如果发现运行结果与设计目的不相符(通常称为逻辑错误),说明程序在设计思路或算法上出现了问题,需要重新检查源程序找出问题并且修改,然后重新编译、链接、运行,直到得到正确结果