电子工程师技术服务社区
公告
登录
|
注册
首页
技术问答
厂商活动
正点原子
板卡试用
资源库
下载
文章
社区首页
问答
C语言标志符为什么不能以数字做开头?
已解决
73482
个问题
已帮助
5993
位优秀工程师
C语言标志符为什么不能以数字做开头?
乌托邦
2019-11-03
浏览量:1998
C语言标志符为什么不能以数字做开头?经常犯这样错误!!!
显示全部
单片机
关注问题
写回答
0
0
收起
我来回答
上传资料:
选择文件
文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
xdsnet
这个是直接语言规定,当然从语法分析的角度稍微可以探讨这样的规定就是:如果允许这样的规定,你可以定义以数字开头的变量,而保持其他变量定义规则,则理论上就可以定义全数字变量 比如“123”,这个时候你在程序中写“123”到底是变量还是数字字面量?这会很混乱? 如果规则是 允许以数字字符开头,但以数字字符开头的,后面要求起码有一个非数字字符规则,则这个也和16进制数字字面量可能存在冲突,比如"0x123"、"0xabc"到底是变量名还是16进制数字字面量呢?由于这样的冲突使得变量分析要么规则定义很复杂(这也不行、那也不行),要么无非正确识别,所以还不如直接规定数字字符不能出现在变量名首字符中,这一可以直接减少很多问题的规则, 而且不利影响很小。我还没有切实遇到过 变量名首字符用 数字表达更方便的情况,稍微放到后面其实大多数时候也能很好的进行虚数区分(这个是变量名中包含数字的主要需求情况)。
发布于
2019-11-04
举报
评论 0
0
0
其他答案
数量:
4
沃尔夫斯堡的羊
这,举个极端的例子,假设在C代码中以数字开头定义个标识符或变量,如8***,后面可以跟数字,8923,那么问题来了,这个8923到底是标识符或变量的名字标志,还是一个实实在在的数?这样C的语法分析器无法判断。。。
发布于
2019-11-04
举报
评论 0
0
0
shakencity
这是硬性规定啊,为了就是怕出错,不仅仅是人会错,机器也会错,所以严格制定规则以保证不会错
发布于
2019-11-04
举报
评论 0
0
0
chen0000009
这个是语法规定,为了方便编译器识别变量,如果混用,那编译器无法区分是常量还是变量
发布于
2019-11-23
举报
评论 0
0
0
Harriet
主要是C语言的强制规则,是大家通俗遵守的约定
发布于
2019-12-14
举报
评论 0
0
0
相关问题
问题达人
换一批
文章
知识经验换现金
换一批
C语言标志符为什么不能以数字做开头?
写回答
关注问题
×
我要举报该内容,理由是:
内容质量差:
内容太水、伸手党
垃圾广告信息:
广告、招聘、推广、测试内容等
偏离问答主题:
与技术无关、讨论类
与社区已有内容重复:
违规内容:
色情、暴力、血腥、敏感信息等
不友善内容:
人事攻击、挑衅辱骂、恶意行为
以上选项都不是: