0
expr_no_commas '=' expr_no_commas
它在C的规则发现,但唯一可能的形式,我能想到的是:C中有多少expr_no_commas'='expr_no_commas表达式?
identifier = expr_no_commas
即,左侧是一个变量,其任何其他变?
expr_no_commas '=' expr_no_commas
它在C的规则发现,但唯一可能的形式,我能想到的是:C中有多少expr_no_commas'='expr_no_commas表达式?
identifier = expr_no_commas
即,左侧是一个变量,其任何其他变?
有很多C表达式是分配给非标识符的;这里有几个例子:
x[1] = 5;
*f() = 7;
*p++ = 0;
a[i].f = a[i].g;
你从哪里找到“规则”?在语言标准提出的语法(草案n1256,§ 6.5.16)是
assignment-expression:
conditional-expression
unary-expression assignment-operator assignment-expression
assignment-operator: one of
= *= /= %= += -= >= &= ^= |=
其中一元表达式结果在任何数目的不是简单的标识符制作的(如耶Willcock已示出)。
我怀疑'* f()= 7;'会工作... – assem 2011-03-16 21:03:22
@assem:为什么不呢?一个函数可以返回一个指针。 – 2011-03-16 21:04:07
但它是左值吗? – assem 2011-03-16 21:06:13