Skip to content

C++ 词法单元

在 C++ 中,词法单元可以定义为编译器理解的 C++ 程序的最小构建块。C++ 源代码中的每个单词都可以被视为一个词法单元。

C++ 中的词法单元类型

我们有几种类型的词法单元,每种词法单元在 C++ 的语法和语义中都发挥着特定的作用。以下是 C++ 中主要的词法单元类型:

  • 标识符
  • 关键字
  • 常量
  • 字符串
  • 特殊符号
  • 运算符

1. 标识符

在 C++ 中,像变量、函数、类或结构体这样的实体必须在程序中具有唯一的名称,以便可以唯一地识别它们。赋予这些实体的唯一名称称为标识符。

建议选择有效且相关的标识符名称,以编写可读性强且易于维护的程序。关键字不能作为标识符,因为它们是用于执行特定任务的保留字。在以下示例中,“first_name” 是一个标识符。

C++
string first_name = "Raju";

定义标识符名称时必须遵循以下规则:

  • 标识符只能以字母或下划线(_)开头。
  • 标识符可以由字母(A-Z 或 a-z)、数字(0-9)和下划线(_)组成。不能使用空格和特殊字符作为标识符的名称。
  • 关键字不能用作标识符,因为它们是用于执行特定任务的保留字。例如,string、int、class、struct 等。
  • 标识符在其命名空间中必须唯一。
  • C++ 是区分大小写的语言,因此标识符“first_name”和“First_name”是不同的实体。

以下是 C++ 中有效和无效标识符的一些示例:

有效标识符 无效标识符
_name #name(不能以特殊字符开头,除了‘_’)
Number89 2num(不能以数字开头)
first_name first name(不能包含空格)
last_name string(不能与关键字相同)

2. 关键字

C++ 中的关键字是编程语言中的保留字,在程序中具有特定的含义和功能。关键字不能用作标识符来命名变量。

例如,变量或函数不能命名为‘int’,因为它用于声明整数数据类型。

C++ 中保留了 95 个关键字。主要的关键字包括:

break, try, catch, char, class, const, continue, default, delete, auto, else, friend, for, float, long, new, operator, private, protected, public, return, short, sizeof, static, this, typedef, enum, throw, mutable, struct, case, register, switch, and, or, namespace, static_cast, goto, not, xor, bool, do, double, int, unsigned, void, virtual, union, while

3. 常量

常量是 C++ 中用于在初始化时定义变量的词法单元,赋值后无法更改。

我们可以通过‘const’关键字和‘#define’预处理指令两种方式来定义常量。我们分别来看这两种方法。

  1. 使用‘const’关键字定义常量

常量是定义后在程序执行期间不会改变的值。我们可以将任何类型的数据定义为常量,如整数、浮点数、字符串和字符。文字是赋给常量变量的常量值。

语法:

C++
const data_type variable_name = value;
  1. 使用‘#define’预处理指令定义常量

#define 预处理器可以用于定义常量标识符,该标识符在程序中出现的地方会被定义的值替换。它在主函数外全局定义。

语法:

C++
// constant_Name 在程序中出现的地方都会被其值替换
#define constant_Name value

4. 字符串

在 C++ 中,字符串不是像‘int’、‘char’或‘float’那样的内置数据类型。它是 STL 库中提供的一个类,提供了处理字符序列的功能,表示文本字符串。

当我们使用‘string’关键字定义变量时,我们实际上是在定义一个表示字符序列的对象。我们可以对字符串执行字符串类提供的各种方法,如 length()、push_back() 和 pop_back()。

声明字符串的语法:

C++
string variable_name;

用双引号(“”)初始化字符串对象。

C++
string variable_name = "This is string";

5. 特殊符号

特殊符号是具有特定语法含义的标记字符。这些符号用于各种功能,包括结束语句、定义控制语句、分隔项目等。

以下是 C++ 编程中最常用的特殊符号:

  • 分号(;):用于终止语句。
  • 方括号([]):用于存储数组元素。
  • 大括号({}):用于定义代码块。
  • 范围解析符(::):用于访问命名空间、类等的成员。
  • 点(.):点操作符,也称为成员访问操作符,用于访问类和结构体成员。
  • 赋值操作符(=):用于将值赋给变量。
  • 双引号(“”):用于括起字符串字面量。
  • 单引号(‘’):用于括起字符字面量。

6. 运算符

C++ 运算符是用于对操作数(如变量、常量或表达式)执行操作的特殊符号。C++ 提供了多种运算符用于执行特定类型的操作,包括算术运算、比较运算、逻辑运算等。

例如,(A+B) 中,‘A’ 和 ‘B’ 是操作数,而 ‘+’ 是用于添加两个操作数的算术运算符。

运算符的类型

  • 一元运算符:仅与单个操作数一起使用,执行单个变量上的操作。例如,递增和递减运算符。
  • 递增运算符(++):用于将操作数的值增加 1。
  • 递减运算符(--):用于将操作数的值减少 1。
  • 二元运算符:与两个操作数一起使用,在两个变量之间执行操作。例如,(A<B),小于(<)运算符比较 A 和 B,如果 A 小于 B,则返回 true,否则返回 false。
  • 算术运算符:对操作数执行基本的算术操作,包括 ‘+’、‘-’、‘*’、‘/’ 和 ‘%’。
  • 比较运算符:用于比较两个操作数,包括 ‘==’、‘!=’、‘<’、‘>’、‘<=’ 和 ‘>=’。
  • 逻辑运算符:对布尔值执行逻辑操作,包括 ‘&&’、‘||’ 和 ‘!’。
  • 赋值运算符:用于将值赋给变量,包括 ‘=’、‘+=’、‘-=’、‘*=’、‘/=’ 和 ‘%=’。
  • 位运算符:对整数执行位操作,包括 ‘&’、‘|’、‘^’、‘~’、‘<<’ 和 ‘>>’。
  • 三元运算符:唯一一个需要三个操作数的运算符,也称为条件运算符,用于条件表达式。

语法:

C++
Expression1 ? Expression2 : Expression3;

如果 ‘Expression1’ 为 true,则执行 ‘Expression2’,否则执行 ‘Expression3’

Comments