为恒定语法或语义错误分配值?

时间:2015-10-22 09:46:31

标签: c++ compiler-construction syntax-error lvalue

第二行代码是否被视为语法错误或C ++中的语义错误?

 int a = 7;
 3 = a;

在标准的C ++无上下文语法中,我发现这个语句在语法上是有效的。

1 个答案:

答案 0 :(得分:3)

这不是语法错误,因为语法可以从赋值表达式(5.17)派生到 integer_literal

然后是语义错误,如5.17中所述:

  

所有都需要一个可修改的左值作为左操作数并返回一个   左值是指左操作数。

lvalue 是一个语义概念,而不是语法概念。