为什么变量名是一个表达式?

Van*_*nts -1 c++ expression

int n=0;
n;
Run Code Online (Sandbox Code Playgroud)

为什么是“n;” 一种表达?它不调用任何操作员等。

orl*_*rlp 6

因为语言设计者在创建语法时已经决定了。


作为更实际的原因,文法通常是递归定义的。您可以禁止将裸变量用作表达式,但将变量定义为表达式要容易得多。因为那样你就可以简单地定义加法<expr> + <expr>,作为一个例子。