A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

应该有很多大神知道这个东西了,我只是爱转一下牛角尖~~嘿嘿~~

正题:
我相信 :你肯定知道标示符是不能用0-9的数字开头的!

那么有没有想过为什么呢?

期待最官方的回答!:lol

评分

参与人数 1黑马币 +1 收起 理由
杨佳名 + 1

查看全部评分

9 个回复

倒序浏览
期待答案
回复 使用道具 举报
哥们 有精力就多敲点代码吧  假如你明明知道了 0 怎么写 你还会纠结它为什么要这样写吗
回复 使用道具 举报
可能java底层解析有关吧
回复 使用道具 举报
一加一为什么等于二,你想过没有?有些东西目前没必要想,就不要去浪费时间了。
回复 使用道具 举报
本帖最后由 FlyFish 于 2014-11-10 15:11 编辑

1,全数字时,有可能和赋值操作符冲突。2,不全数字时,底层解析首为数字比其他解析麻烦,至于怎么麻烦就不知道了,貌似Unicode编码的原因……
回复 使用道具 举报
kerner 中级黑马 2014-11-10 19:11:22
7#
因为从古老的汇编语言开始就规定标示符首字符就不能是数字,如果首字母是数字,则编译器语法解析时就需要判断该标示符究竟是数字还是变量名标示符,比如0xefcf,应该是变量名字还是常数呢?这样编译器编译效率会大打折扣,所以就应该有这个规则吧。
传送门:

研究这个问题比较蛋疼,有这个时间还不如多码点代码。
回复 使用道具 举报
涨涨知识。
回复 使用道具 举报
cbb 中级黑马 2014-11-11 09:21:36
9#
20140829 发表于 2014-11-10 13:48
一加一为什么等于二,你想过没有?有些东西目前没必要想,就不要去浪费时间了。 ...

好吧~我只是觉得我们不能只知道表面,不知道内部原理~~~有可能是与ASCII码有关!因为计算机可能识别不了它到底是 数字还是字符~~,在ASCII码取值的时候冲突吧~~
回复 使用道具 举报
cbb 中级黑马 2014-11-11 11:12:05
10#
kerner 发表于 2014-11-10 19:11
因为从古老的汇编语言开始就规定标示符首字符就不能是数字,如果首字母是数字,则编译器语法解析时就需要判 ...

嗯嗯,就是前天晚上忽然想起来为啥,纠结了几个小时,去查了一下编码~~才知道
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马