原因: 词法分析器在判断一个单词是否以数字开头,如果是以数字开头则把他当作数字常量处理,否则当作普通单词处理。这样子可以提高词法分析器的效率。 为什么变量名不能使用数字开头,原来是因为词法分析程序在分析,变量和数字的时候,需要依据第1个字符来判断是标识identify还是数字Number // 0-9开头表示是数字 // 字符...
如果以数字开头,这个变量就可能是纯数字了,这样语言的编译器(或解释器)就分不清当前的是数字还是变量名了。即使不是纯数字,如100000L在有些语言中表示长整型,还是会有歧义的。 程序语言的分析分词法和语法两部分。词法分析主要用的是正规文法,也就是三型文法。这类文法主要采用正则表达式分析。正则文法分析器的特点...
这个规定是为了简化编译程序、同时增加代码可读性。如果允许数字变量,那如何区分数字和变量呢。另外,在shell、perl等语言中,变量可以是纯数字甚至符号,因为她们要求变量前面一律添加$符号标记,例如$1、$|都是常用变量。
另外变量名以数字开头对程序员而言也没有任何的帮助,反而降低了编译器的性能,毕竟O(1)和O(n)还是差...
其实,不是所有语言的变量名,或者更准确的称之为标识符,都不可以以数字开头,在一门很古老的语言LISP...
至于为什么变量名不能以数字开头?我们可以假设变量名可以以数字开头,那么 String 123 = "数字开头";int a = 123;对于这两句来说应该是对还是错?对于int a = 123;来说右边的123是数字还是变量名?如果是数字的话那么没有错;如果是变量名的话就不对了,因为类型不匹配呀。哈哈,有点绕,差不...
js标识符(变量名、函数、属性)名称为什么不能以数字开头? 上网搜索了一下答案,总结了一下。 如果可以用数字开头,编译器就分不清到底是数值还是标识符。 (绝大多数语言都设定不能以数字开头) 这样设定,js就可以轻易分辨标识符和数字了。 那比如 16进制数值默认以0x开头, ...
假如变量名允许以数字开头的话,那么语法分析器在解析一个全部为数字的字串的时候,就无法判断它是一个数字常量还是一个变量名了
首先在C语言中,输入变量的语法是: 可以看出,第二个的格式为变量地址。 在C语言中,变量在定义之后,就会在计算机内存中非配一块空间给这个变量,该空间在内存中的地址称为变量的地址。 为了得到变量的地址,需要在变量前加一个&(称为取地址运算符),也就是“&变量名”的写法。 补充:常见数据类型变量的scanf格式符...
因为那时一串数字将是有效的标识符以及有效的数字。int 17 = 497; int 42 = 6 * 9; String 1111 ...