-1

由于在C\C++\Java -

int 2a ; //invalid suffix "a" on integer constant

尽管它是有效的语法,但变体名称的其余部分中的数字没有问题吗?

像 -

int num1 ;
int num_1st ;
int num_2nd ; 
4

6 回答 6

8

我从未听说过任何人(例如,任何编码标准/指南)对标识符中的数字有问题。尽管如此,它们中的太多可能表明一个向量或数组可能更可取——即使只有两个,你的num_1stnum_2nd可能会更好numbers[2]

于 2012-12-20T17:55:42.257 回答
5

标识符不能以数字开头。它必须以字母或下划线开头。

于 2012-12-20T17:54:06.443 回答
1

变量标识符必须以字母或下划线开头,但其余字符可以是字母、下划线或数字。

你甚至可以标记一个变量: int _ = 0;

或者如果您熟悉正则表达式,可以将其模式化为:“[a-zA-Z_]\w*?\b”

\w*? 部分不是必须的。

于 2012-12-20T19:04:42.890 回答
0

答案是,不,标识符名称的其余部分中的数字没有任何问题。

于 2012-12-20T17:57:22.353 回答
0

只要变量名有意义,使用数字作为名称的一部分绝对不是坏事。当然,有大量类似命名的变量,最后只有一个数字来区分它们,这可能是糟糕设计的标志。

我很确定,也不允许标识符以数字开头的原因是它使编写解析器变得更加容易:

c = getchar(); 
ungetc(c);
if (isdigit(c)) 
   token = number(); 
else 
   token = identifier(); 
于 2012-12-20T18:23:22.670 回答
0

这是标识符的规则,它必须以字母或下划线开头,之后只允许数字。

于 2012-12-21T14:40:04.773 回答