变量名定义:变量名由字母、数字、下划线组成,其中首个字符不能为数字。
解释一、词法分析说(https://www.zhihu.com/question/19581495)
因为每次输入“头符号”后要判断该符号是数字还是字符,如果是数字,则可以直接跳入数字处理的模块,若是字符则按变量名来处理。
如果允许变量名以数字开头,则以后每次输入一个符号都要做一次“是否为数字”的判断,直到符号出现非数字再转成变量名,而禁止以数字开头只需要判断一次,很显然“每一次都要判断”是一种极大的浪费。
另外变量名以数字开头对程序员而言也没有任何的帮助,反而降低了编译器的性能,毕竟O(1)和O(n)还是差距不小的。
解释二、现有的数据无法区分
科学计数:1e3
某些数值:100000L,100f
程序逻辑错误:int 1 = 2; if (1 == 2) {...}