我个人认为,首先会产生歧义,例如 float a = 4f;float 4f = 4.1;所以对编译器来说分辩一个以数字开头的变量很麻烦,必须从第一个字符判断,如果第一个是数字,接着判断下一个字符,直到有非数字的字符才可确定是变量名,这对编译器来说很浪费时间,所以有的语言就有了这个规定,变量名不能以数字开始;另外,词法分析工作对CPU来说非常艰苦卓绝,此阶段应该尽量快速,最快速的方法就是仅向前看一个字母就能排除所有无关逻辑分支而不需要回溯更多的字母,大多数 此法逻辑都是这样定义的,标识符和数字在第一个字母就区分开而不是需要看三个字母(例如“num”就是三个字母,显然效率很低)。

浙公网安备 33010602011771号