由于在C\C++\Java -
int 2a ; //invalid suffix "a" on integer constant
尽管它是有效的语法,但变体名称的其余部分中的数字没有问题吗?
像 -
int num1 ;
int num_1st ;
int num_2nd ;
由于在C\C++\Java -
int 2a ; //invalid suffix "a" on integer constant
尽管它是有效的语法,但变体名称的其余部分中的数字没有问题吗?
像 -
int num1 ;
int num_1st ;
int num_2nd ;
我从未听说过任何人(例如,任何编码标准/指南)对标识符中的数字有问题。尽管如此,它们中的太多可能表明一个向量或数组可能更可取——即使只有两个,你的num_1st
和num_2nd
可能会更好numbers[2]
。
标识符不能以数字开头。它必须以字母或下划线开头。
变量标识符必须以字母或下划线开头,但其余字符可以是字母、下划线或数字。
你甚至可以标记一个变量: int _ = 0;
或者如果您熟悉正则表达式,可以将其模式化为:“[a-zA-Z_]\w*?\b”
\w*? 部分不是必须的。
答案是,不,标识符名称的其余部分中的数字没有任何问题。
只要变量名有意义,使用数字作为名称的一部分绝对不是坏事。当然,有大量类似命名的变量,最后只有一个数字来区分它们,这可能是糟糕设计的标志。
我很确定,也不允许标识符以数字开头的原因是它使编写解析器变得更加容易:
c = getchar();
ungetc(c);
if (isdigit(c))
token = number();
else
token = identifier();
这是标识符的规则,它必须以字母或下划线开头,之后只允许数字。