【发布时间】:2010-09-25 10:09:43
【问题描述】:
不久前,我和一位新的 C++ 开发人员一起工作时,他问了一个问题:“为什么变量名不能以数字开头?”
除了某些数字中可以包含文本(123456L、123456U)之外,我无法给出答案,如果编译器认为带有一定数量字母字符的所有内容都是变量名,这将是不可能的。
这是正确的答案吗?还有其他原因吗?
string 2BeOrNot2Be = "that is the question"; // Why won't this compile?
【问题讨论】:
-
为什么它们里面不能有空格?
-
这个问题至少比 C++ 早了 20 年,如果不是回到第一个宏汇编器的话。
-
好吧,在 FORTH,你可以做到。 AFAIK,有一个词叫
0,它将 0 推入堆栈。另一个是0=,它检查0是否在堆栈中。 -
为什么这个问题如此受欢迎,而答案却如此错误?许多语言确实允许变量以数字开头。 C++ 没有,但它只是一个方便的限制,可以避免某些歧义。有时 SO 会以各种错误的方式让我感到惊讶。
-
如果今天在 SO 上提出这个问题,它将被称为基于意见并关闭。感谢您提出这个问题。
标签: c++ variables programming-languages language-design variable-names