首页 > 文章列表 > 为什么C/C++变量不能以数字开头?

为什么C/C++变量不能以数字开头?

c语言 命名规范 变量命名规则
237 2023-09-04

在 C/C++ 中,变量名可以包含字母、数字和下划线 (_) 字符。 C/C++ 语言中有一些关键字,除了它们之外,所有内容都被视为标识符。标识符是变量、常量、函数等的名称。

我们不能指定以数字开头的标识符,因为编译器有以下七个阶段。

  • 词法分析
  • 语法分析
  • 语义分析
  • 中间代码生成
  • 代码优化
  • 代码生成
  • 符号表

以上都不支持变量以数字开头。这是因为编译器会混淆它是数字还是标识符,直到它到达数字后面的字母表。因此编译器将不得不回溯到不支持的词法分析阶段。编译器在查看第一个字符后应该能够将标记识别为标识符或文字。

以下是演示 C 语言变量声明的示例。

示例

#include <stdio.h>
int main() {
   int 5s = 8;
   int _4a = 3;
   int b = 12;
   printf("The value of variable 5s : %d", 5s);
   printf("The value of variable _4a : %d", _4a);
   printf("nThe value of variable b : %d", b);
   return 0;
}

上面的程序会导致错误“整数常量上的后缀“s”无效”,因为变量以 5 开头。如果我们删除它,那么程序将正常工作。

演示的示例新程序如下。

示例

 现场演示

#include <stdio.h>
int main() {
   int _4a = 3;
   int b = 12;
   printf("The value of variable _4a : %d", _4a);
   printf("nThe value of variable b : %d", b);
   return 0;
}

输出

上述程序的输出如下。

The value of variable _4a : 3
The value of variable b : 12