C中有多少个expr_no_commas'='expr_no_commas表达式?

时间:2011-03-16 20:59:43

标签: c syntax

expr_no_commas '=' expr_no_commas

这是在C的规则中找到的,但我能想到的唯一可能的形式是:

identifier = expr_no_commas

即,左侧是单个变量,还是其他任何变量?

2 个答案:

答案 0 :(得分:5)

有很多C表达式是非标识符的赋值;这里有几个例子:

x[1] = 5;
*f() = 7;
*p++ = 0;
a[i].f = a[i].g;

答案 1 :(得分:0)

你在哪里找到“规则”?语言标准(草案n1256,第6.5.16节)中提供的语法是

assignment-expression:
    conditional-expression
    unary-expression assignment-operator assignment-expression

assignment-operator: one of
    = *= /= %= += -= >= &= ^= |=

其中一元表达式导致任何数量的非简单标识符的制作(如Jeremiah Willcock所示)。