1.4.1 C语言的基本词法

C语言的基本词法可以分为6类:标识符、关键字、运算符、分隔符、常量、注释符。

1.标识符

标识符是指常量、变量、语句标号以及用户自定义函数的名称。除库函数的函数名由系统定义外,其余的都是由用户自己定义。C语言规定,标识符只能是由字母、数字和下画线组成的字符串,并且其第一个字符必须是字母或下画线。例如_name是一个合法的标识符,但left&right就是非法的标识符。

关于标识符的几点说明如下:

(1)标准C不限制标识符的长度,但标识符的长度受各种版本的C语言编译系统的限制,同时也受到具体机器的限制。在编写程序时,应对系统所规定的标识符的长度有所了解,以免造成不必要的错误。这种错误不会被编译系统发现,所以应特别小心。

(2)在标识符中,大小写是有区别的。例如,sum和SUM是两个不同的标识符。变量名应尽量使用小写字母,以增加程序的可读性。

(3)标识符是用于标识某个量的符号,命名应尽量有相应的意义,以便阅读理解时能“顾名思义”。

(4)在C语言中,所有的变量都是先定义后使用,使用没有定义的变量名被认为是“非法”的。

2.关键字

关键字又称保留字是C语言规定的具有特定意义的符号串。用户定义的标识符不应与关键字相同。C语言的关键字分为以下几类:

(1)类型说明符:用于定义和说明变量、函数或其他数据结构的类型,如int(整数类型)、float(实数类型)、char(字符类型)等。

(2)语句定义符:用于表达一条语句的功能,如条件语句的定义符if-else、循环语句的语句定义符for、while等。

(3)预处理命令符:用于表示一个预处理命令,使用时前面要加“#”,如#include、#define等。

注意:关键字后必须有空格、圆括号、尖括号、双引号等分隔符,否则与其他字符一起使用将会组成新的标识符。

3.运算符

C语言中含有丰富的运算符,如+(加)、-(减)、*(乘)、/(除)、%(求余)、>(大于)、>=(大于等于)、==(等于)、=(赋值)等。运算符分为单目运算符(涉及一个运算对象)、双目运算符(涉及两个运算对象)、三目运算符(涉及3个运算对象)等。运算符表示各种运算的功能。

4.分隔符

在C语言中最常用的分隔符有逗号和空格两种。逗号主要用于在类型说明和函数参数表中分割各个变量。空格多用于语句各单词之间,作为间隔符。在关键字和标识符之间必须要有一个以上的空格符作为间隔符,否则将会出现语法错误。

5.常量

在程序执行过程中不能被改变的量称为常量,如123、3.15、'A'、"Hello"均是常量。常量分为数字常量、字符常量、字符串常量、符号常量、转义字符等多种。不同数据类型的常量有不同的表示方式。

6.注释符

C语言的注释符是以“/*”开头并以“*/”结尾的字符串,“/*”和“*/”之间的即为注释。编译程序时,不对注释做任何处理。如果用“//”来表示注释内容,则只有“//”之后且在同一行的内容为注释。

字符是组成语言的最基本的元素。C语言字符集由字母、数字、空格、标点和特殊字符组成。在字符常量、字符串常量和注释中可以使用汉字或其他可表示的图形符号。

(1)字母:小写字母a~z共26个,大写字母A~Z共26个。

(2)数字:0~9共10个。

(3)空白符:空格符、制表符、换行符等统称为空白符。空白符只在字符常量和字符串常量中起作用;在其他地方出现时,只起间隔作用,编译程序对它们忽略。