标签: c++ compiler-construction syntax-error lvalue
第二行代码是否被视为语法错误或C ++中的语义错误?
int a = 7; 3 = a;
在标准的C ++无上下文语法中,我发现这个语句在语法上是有效的。
答案 0 :(得分:3)
这不是语法错误,因为语法可以从赋值表达式(5.17)派生到 integer_literal
然后是语义错误,如5.17中所述:
所有都需要一个可修改的左值作为左操作数并返回一个 左值是指左操作数。
lvalue 是一个语义概念,而不是语法概念。