1.2 C++语言的字符集与词汇

所有的语言系统都是由字符集和规则集组成的。“字符”是语言的不可分解的最基本语法单位。按照规则,由字符可以组成“词”,由词组成“表达式”、“句子”,由各种句子又可以构成“函数”、“程序”。我们学习一门语言,就是要掌握程序设计语言的规律以及如何根据实际问题应用规则编写程序。

1.2.1 字符集

C++语言的字符集是ASCII(American Standard Code for Information Interchange)码的子集,包括:

            26个小写字母abcdefghijklmnopqrstuvwxyz
            26个大写字母ABCDEFGHIJKLMNOPQRSTUVWXYZ
            10个数字     0123456789
            其他符号     (空格)!"#%&'()*+-/:;<=>?[\]^_{|}~.

1.2.2 词汇

单词是语言中有意义的最小语法单位。根据构成规则,一个单词由一个或多个字符组成。下面介绍C++语言的词汇。

1.关键字

关键字又称保留字。关键字是系统预定义的语义符。C++语言不允许对关键字重定义。根据语言版本不同,关键字会有所增减。

下面列举出C++语言常用的关键字。全部关键字可查阅MSDN帮助文档。

            array   bool   break   case   catch   char   class   const   continue   default   delete
            do   double   else   enum   extern   false   float   for   friend   goto   if   inline   int
            long   namespace   new   nullptr   operator   private   protected   public   return   short
            sizeof   static   struct   switch    template   this   throw   true   try   typedef
            typename   union   unsigned   virtual   void   while

2.标识符

标识符是由程序员定义的命名符。例如,常量、变量、对象、函数、类型、语句标号等的命名。

C++标识符语法是:以字母或下画线开始,由字母、数字和下画线组成的符号串。

注意:① 关键字是特殊的标识符,C++规定不能使用关键字作为用户标识符。

② C++语言中,字母大小写敏感。例如,Aa和aa是两个不同的标识符。

③ C++语言没有规定标识符的长度(即字符个数)。但不同编译系统有不同的识别长度,例如,有的系统识别32个字符。

【例1-3】判断以下标识符的正确性。

            合法标识符有:        a   x1   no_1   _a2c   sum   Name
            不合法标识符有:      2a    x+y    α    π    a,b    a&b    const

标识符命名除了符合上述规则外,应该尽可能做到“见名知义”,以提高程序的可读性。例如,年龄用age,名字用name,总和用sum等。

3.运算符

运算符是对数据进行操作的简洁表达,以单词的形式调用系统预定义函数。许多符号与数学中的相同。例如:

            +  加     - 减     * 乘     / 除     > 大于     < 小于
            >=  大于或等于      <=  小于或等于     == 等于   != 不等于

4.分隔符

分隔符用于在程序中分隔不同的语法单位,便于编译系统识别。例如,有说明语句:

            int a, b, c;

其中的空格、逗号和分号都是分隔符。int和a之间不能省略空格,否则,C++编译器无法分离关键字int和标识符a。

如果一条语句中不同类型的单词连接在一起,编译器能够通过语法规则进行辨别,就不需要另外添加分隔符。例如,算术表达式

            x+y

由3个单词:标识符x、y和运算符“+”组成。“+”既是运算符,也是分隔符,分隔了不同语法规则的标识符,所以x和y之间不需要插入空格。如果插入空格,编译器会自动滤掉。

除此之外,常用的分隔符还有:空格、逗号、分号、冒号、括号、注释符等。

5.常数

常数是指按照特定类型语法规则解释的数据值。C++语言常数有数值、字符和字符串。数据的书写形式表示了它的类型和值。例如,以下数据都是常数。

            500              //整型常数
            3.14159          //浮点型常数
            0.263e-10        //浮点型常数
            'N'              //字符型常数
            "name"           //字符串常数

基本类型的常数在程序运行时直接参与运算,不需占用内存单元存储。各种类型数据的语法规则详见1.3节。