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


在 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

更新于:2020年6月26日

2K+ 次浏览

启动您的 职业生涯

完成课程后获得认证

开始学习
广告
© . All rights reserved.