编程标记

程序的最小单个元素称为标记(Token)。你在程序中看到的所有内容都是标记。

例如:假设一个句子,“C 语言是一种很棒的语言。由 Dennis Ritchie 于 1972 年在 AT&T 贝尔实验室开发。”

上面的句子由中文、字母(a-z A-Z)、空格、数字(0-9)和特殊字符组成。这些是我们句子的构建块或基本元素。类似地,存在制作任何程序的各种基本编程元素。

有五种类型的标记:

  1. 关键字
  2. 标识符
  3. 运算符
  4. 分隔符
  5. 字面量

什么是关键字?

关键字是一个保留字,其含义已由编程语言定义。我们不能在编程中使用关键字用于任何其他目的。每种编程语言都有一些关键字。 示例:intdowhilevoidreturn 等。

什么是标识符?

标识符是给予不同编程元素的名称。给变量或函数或任何其他编程元素的名称都遵循下面列出的一些基本命名约定:

  • 不得将关键字用作标识符。
  • 标识符必须以字母 a-z A-Z 或下划线 _ 符号开头。
  • 标识符可以包含字母 a-z A-Z,数字 0-9 和下划线 _ 符号。
  • 标识符不得包含任何特殊字符(例如!@ $ *。'[]等),除了下划线 _。

一些有效标识符的示例

numNum_num_Numnum1Num1_num1_Num1_1num_1Num_num_number_to_add

一些无效标识符的示例

1numnumber to add1_numnum-to-addnum@

什么是运算符?

运算符是任何算术或逻辑运算的符号。各种编程语言提供了一些常见运算符的各种运算符:

假设下表中两个变量 a = 10b = 5

- 运算符从第一个减去第二个操作数,即 a - b,结果为 5。

运算符 描述 示例

算术运算符

算术运算符用于执行基本算术运算

+ 两个数相加 a + b 结果为 15
- 两个数相减 a - b 结果为 5
* 两个数相乘 a * b 结果为 50
/ 两个数相除 a / b 结果为 2
% 取模数运算符将第一个操作数与第二个操作数相除并返回余数 a % b 结果为 0(因为 10 除以 5 余数为 0)

赋值运算符

赋值运算符用于为变量赋值,该值从右到左分配

= 将值从右操作数赋给左操作数 a = 10 将 10 赋给 a

关系运算符

关系运算符用于检查任意两个操作数之间的关系

> 如果左操作数的值大于右边,则返回 true 否则返回 false a > b 返回 true
< 如果右操作数的值大于左边,则返回 true,否则返回 false a < b 返回 false
== 如果两个操作数相等则返回 true,否则返回 false a == b 返回 false
!= 如果两个操作数不相等则返回 true,否则返回 false a != b 返回 true
>= 如果左操作数的值大于或等于右操作数,则返回 true,否则返回 false a >= b 返回 true
<= 如果右操作数的值大于或等于左操作数,则返回 true,否则返回 false a <= b 返回 false

逻辑运算符

逻辑运算符用于将两个布尔表达式组合在一起,并根据所使用的操作数和运算符生成单个布尔值

&& 用于组合两个表达式,如果两个操作数都为 true 或非零,则返回 true,否则返回 false a >= 1 && a <= 10 返回 true,因为 a >= 1 为真且a <= 10 为真
|| 如果任何操作数为 true 或非零,则返回 true,否则返回 false a > 1 || a < 5 返回 true,因为 a > 1 为真,由于第一个操作为真,所以不需要检查第二个操作
! 逻辑非运算符是一元运算符,返回布尔值的补码 !(a > 1) 返回 false,因为 a > 1 为真,所以取反为假

按位运算符

按位运算符对位(二进制数)执行运算。假设 a = 10b = 5

a = 0000 1010(8 位二进制表示为 10)

b = 0000 0101(8 位二进制表示为 5)

& 按位与,如果两个值均为 1,则结果为 1,否则将为 0   0000 1010
& 0000 0101
____________
  0000 0000
| 按位或,如果两个二进制位中的任何一个为 1,则返回 1,否则返回 0   0000 1010
| 0000 0101
____________
  0000 1111
^ 按位异或,如果两个二进制位都不同,则返回 1,否则返回 0   0000 1010
^ 0000 0101
____________
  0000 1111
~ 按位取反是一元运算符。它返回二进制值的补码,即如果二进制位为 0 则返回 1,否则返回 0 ~ 0000 1010
____________
  1111 0101
<< 按位左移也是一元运算符。它将二进制位向左移位。它在二进制值的最右侧插入一个 0 位值。或者我们可以说它通常将值乘以 2 0000 1010 << 2
____________
0010 1000
>> 按位右移也是一元运算符。它将二进制位向右移位。它在二进制值的最左侧插入一个 0 位值。或者我们可以说它通常将值除以 2 0000 1010 >> 2
____________
0000 0010

递增/递减运算符

递增/递减运算符是一元运算符,用于将整数值增加 1 或将其减 1,递增/递减运算符分为前缀形式和后缀形式

++ 递增运算符,将 1 加到自身

a++ 结果为 11

++a 结果为 11

-- 递减运算符,将自身减 1

a-- 结果为 9

--a 结果为 9

条件/三元运算符

三元运算符作为条件运算符,类似于简单的 if-else。它需要三个操作数。

? 语法:(条件) ? (为真的取值) : (为假的取值)

b = (a > 1) ? a : b; b 的值为 10

因为 (a > 1) 为真,所以执行为真部分

什么是分隔符?

分隔符用于分隔不同的编程元素,编程中使用的各种类型的分隔符是:

(空格) \t(制表符) \n(换行) . , ; () {} []

什么是字面量?

字面量是用于执行各种操作和计算的常量值。基本上有三种字面量:

  1. 整数字面量

    整数字面量表示整数或数值。

    示例:1100-12312

  2. 浮点字字面量

    浮点字面量表示小数值。

    示例:2.1231.022.3313e54-23.3

  3. 字符字面量

    字符字面量表示字符值。单个字符用单引号('')括起来,而字符序列用双引号括起来("")

    示例:'a''n'"Hello""Hello123" 等。