C++ 什么是令牌

C++ 什么是令牌

什么是令牌

C++程序由令牌组成,令牌是最小的单元。 令牌可以是关键字、标识符、常量、操作符或标点符号之一。

C++中有6种类型的令牌:

  1. 关键字
  2. 标识符
  3. 常量
  4. 字符串
  5. 特殊符号
  6. 操作符

1.关键字

在C++中,关键字是保留的特定单词,不能用作标识符 。关键字是C++语言的重要组成部分,用于执行特定的任务或操作。

C++中有95个关键字:

alignas (since C++11) alignof (since C++11) and
and and_eq asm
atomic_cancel (TM TS) atomic_commit (TM TS) atomic_noexcept (TM TS)
auto(1) bitand bitor
bool break case
catch char char16_t (since C++11)
char32_t (since C++11) class(1) compl
concept (since C++20) const constexpr (since C++11)
const_cast continue co_await (coroutines TS)
co_return (coroutines TS) co_yield (coroutines TS) decltype (since C++11)
default(1) delete(1) do
double dynamic_cast else
enum explicit export(1)
extern(1) false float
for friend goto
if import (modules TS) inline(1)
int long module (modules TS)
mutable(1) namespace new
noexcept (since C++11) not not_eq
nullptr (since C++11) operator or
or_eq private protected
public register(2) reinterpret_cast
requires (since C++20) return short
signed sizeof(1) static
static_assert (since C++11) static_cast struct(1)
switch synchronized (TM TS) template
this thread_local (since C++11) throw
true try typedef
typeid typename union
unsigned using(1) virtual
void volatile wchar_t
while xor xor_eq

如果您尝试将一个保留关键字作为标识符使用,编译器将会产生一个错误,因为它不知道如何处理该关键字。

以下是一个尝试将保留关键字作为标识符使用的程序示例:

#include 

using namespace std;

int main()
{
    // Define a variable named "int" of type int and initialize it to 10
    int int = 10;

    // Print the value of the "int" variable
    cout << "The value of the variable " << int << " is " << int << "." << endl;

    return 0;
}

输出:

C++ 什么是令牌

解释:

当我们编译以上代码时,编译器会产生一个错误。这个错误是因为int关键字不能用作标识符。你需要选择一个不同的变量名来避免这个错误。

总结:

保留关键字是C++语言的重要组成部分,不能用作标识符。你必须为代码中的变量、函数和其他对象选择不同的名称。

2. 标识符

C++中,标识符是给变量、函数或者其他对象起的名称。标识符用于在程序中引用这些实体,它们可以由字母、数字和下划线组成。然而,在选择标识符时必须遵守一些规则:

  • 第一个字符必须是字母或者下划线。
  • 标识符不能与关键字相同。
  • 标识符不能包含任何空格或特殊字符,除了下划线。
  • 标识符区分大小写,也就是说变量名“myVariable”和“myvariable”是不同的。

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

  • 有效:
    • my_variable
    • student_name
    • balance_due
  • 无效:
    • my variable(包含空格)
    • student#(包含特殊字符)
    • int(与关键字相同)

为了让你的代码更易读和理解,选择有意义和描述性的标识符非常重要。

示例:

#include 

using namespace std;

int main()
{
    // Define a variable named "age" of type int and initialize it to 25
    int age = 25;

    // Define a variable named "name" of type string and initialize it to "John Doe"
    string name = "John Doe";

    // Print the value of the "age" and "name" variables
    cout << "My name is " << name << " and I am " << age << " years old." << endl;

    return 0;
}

输出:

C++ 什么是令牌

说明:

在这个程序中,变量的age和name是标识符,用于存储和访问变量的值。标识符age用于存储一个人的年龄,标识符name用于存储这个人的名字。请注意,标识符被选择为描述性和有意义的,这使得代码更容易阅读和理解。如果您遵循前面讨论的标识符命名规则,您可以在C++程序中使用任何有效的标识符。

3. 常量

在C++中,常量是在程序执行过程中不能改变的值。常量通常代表代码中频繁使用的固定值,例如pi的值或数组的最大大小。

要在C++中定义一个常量,您需要使用const关键字,后面跟上数据类型和常量的名称,然后用一个值进行初始化。一旦定义了常量,其值就不能被改变。下面是一个示例:

const double PI = 3.14159;

在这个示例中,常量PI的类型为double,并且用pi的值进行初始化。您可以在代码中的任何需要使用pi值的地方使用常量PI。

在代码中使用常量而不是普通变量是很重要的,特别是当您需要表示固定值时。这可以使您的代码更易读、更易维护,并防止意外更改常量的值。

示例:

#include 

using namespace std;

int main()
{
    // Define a constant named "PI" of type double and initialize it to 3.14159
    const double PI = 3.14159;

    // Define a variable named "radius" of type double and initialize it to 10.0
    double radius = 10.0;

    // Calculate the area of a circle with radius 10.0
    double area = PI * radius * radius;

    // Print the area of the circle
    cout << "The area of the circle is " << area << "." << endl;

    return 0;
}

输出:

C++ 什么是令牌

解释 :

在这个程序中,常量PI被用来表示π的值。使用const关键字定义了PI的值,并用pi的值进行了初始化。常量PI随后被用来计算圆的面积,乘以圆的半径的平方来确定面积。

请注意,常量PI与普通变量使用方式相同,但一旦定义就不能更改。这使其成为表示代码中经常使用的固定值的理想选择。

你可以在C++程序中使用常量来表示不能更改的固定值。这可以使你的代码更易读、易维护,并防止对常量值的意外更改。

4. 字符串

在C++中,字符串是表示文本的字符序列。 字符串在C++程序中常用于存储和操作文本数据。

要在C++中使用字符串,必须在程序的开头包含<string>头文件。这将提供对string类的访问,该类用于在C++中创建和操作字符串。以下是一个示例:

#include 
#include 

using namespace std;

int main()
{
    // Define a string variable named "message" and initialize it with a string value
    string message = "Hello, world!";

    // Print the value of the "message" variable
    cout << message << endl;

    return 0;
}

输出:

C++ 什么是令牌

解释:

在这个示例中,字符串类创建了一个名为message的字符串变量。message变量被初始化为字符串”Hello, world!”,然后使用cout对象将其输出到屏幕上。

您可以使用字符串类执行各种字符串操作,例如串联字符串、比较字符串、搜索子字符串等等。如需了解更多信息,请参考字符串类的文档。

5. 特殊符号

在C++中,有几个特殊符号用于不同的目的。&符号用于表示变量的地址,而~符号用于表示按位取反运算符。一些常见的特殊符号包括*符号,用作乘法和指针运算符。

# 符号用于表示预处理指令,这是一种在代码编译之前由预处理器处理的特殊指令。百分号%作为模运算符,用于在一个数除以另一个数时查找余数。

竖线|用于表示按位或运算符,而插入符^用于表示按位异或运算符。感叹号!用于表示逻辑非运算符,用于对布尔值取反。

除了这些符号,C++还有许多其他特殊字符,用于各种目的。例如,反斜杠/用于转义特殊字符,双引号”用于括起字符串字面值,单引号’用于括起字符字面值。

总的来说,C++中的特殊符号是语言的重要组成部分,并在各种不同的上下文中用于执行各种操作。

示例:

#include 

using namespace std;

int main() {
  int a = 5;
  int b = 10;
  int c = a * b; // Use of the asterisk (*) as the multiplication operator
  cout << "The product of " << a << " and " << b << " is " << c << endl;

  int *ptr = &a // Use of the ampersand (&) to get the address of a variable
  cout << "The address of a is " << ptr << endl;

  int d = ~a; // Use of the tilde (~) as the bitwise NOT operator
  cout << "The bitwise NOT of " << a << " is " << d << endl;

  return 0;
}

输出:

C++ 什么是令牌

解释: 在这个程序中,星号 (*) 被用作乘法运算符来计算变量 a 和 b 的乘积。和号 (&) 被用来获取变量 a 的地址,然后将其打印到控制台。最后,波浪号 (~) 被用作位非运算符来取反变量 a 的值。

6. 运算符

C++ 中,运算符是用于对一个或多个操作数进行操作的特殊符号。操作数是运算符作用的值。C++有多种运算符, 包括算术运算符、关系运算符、逻辑运算符等等。

算术运算符 用于执行加法、减法、乘法和除法等数学运算。一些算术运算符的示例包括 +(用于加法)、-(用于减法)、*(用于乘法)和/(用于除法)。

关系运算符 用于比较两个值并确定它们的关系。一些关系运算符的示例包括 ==(用于检查相等性)、!=(用于检查不等性)、>(用于检查一个值是否大于另一个)和<(用于检查一个值是否小于另一个)。

逻辑运算符 用于组合两个或多个关系表达式并确定它们的逻辑关系。一些逻辑运算符的示例包括 &&(用于逻辑与操作)、||(用于逻辑或操作)和(用于逻辑非操作)。

除了这些运算符之外,C++还有一些用于不同目的的其他运算符。例如,位运算符用于对一个值的各个位进行位运算,赋值运算符用于给变量赋值。

总的来说,运算符是 C++ 中的一个重要部分,用于在程序中执行各种操作。

示例:

#include 

using namespace std;

int main() {
  int a = 5;
  int b = 10;
  int c = a + b; // Use of the plus (+) operator for addition
  cout << "The sum of " << a << " and " << b << " is " << c << endl;

  c = a - b; // Use of the minus (-) operator for subtraction
  cout << "The difference between " << a << " and " << b << " is " << c << endl;

  c = a * b; // Use of the asterisk (*) operator for multiplication
  cout << "The product of " << a << " and " << b << " is " << c << endl;

  c = a / b; // Use of the forward slash (/) operator for division
  cout << "The quotient of " << a << " and " << b << " is " << c << endl;

  bool d = (a == b); // Use of the double equals (==) operator to check for equality
  cout << "Is " << a << " equal to " << b << "? " << d << endl;

  d = (a != b); // Use of the exclamation point and equals (!=) operator to check for inequality
  cout << "Is " << a << " not equal to " << b << "? " << d << endl;

  return 0;
}

输出:

C++ 什么是令牌

说明:

在这个程序中,使用了各种不同的运算符来执行不同的操作。+ 运算符用于加法,- 运算符用于减法,* 运算符用于乘法,/ 运算符用于除法。==!= 运算符分别用于检查相等和不相等。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程