Сколько выражений expr_no_commas '=' expr_no_commas есть в C? - PullRequest
0 голосов
/ 16 марта 2011
expr_no_commas '=' expr_no_commas

Это найдено в правиле C, но единственная возможная форма, о которой я могу думать, это:

identifier = expr_no_commas

, то есть левая сторона - это одна переменная, любые другие варианты?

Ответы [ 2 ]

5 голосов
/ 17 марта 2011

Там много выражений C, которые являются присваиваниями неидентификаторам; Вот несколько примеров:

x[1] = 5;
*f() = 7;
*p++ = 0;
a[i].f = a[i].g;
0 голосов
/ 17 марта 2011

Где вы нашли это "правило"? Синтаксис, представленный в стандарте языка (черновик n1256 и раздел 6.5.16):

<i>assignment-expression</i>:
    <i>conditional-expression
    unary-expression assignment-operator assignment-expression</i>

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

где унарное выражение приводит к любому числу произведений, которые не являются простыми идентификаторами (как показал Джеремия Уиллкок).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...