Путаница с синтаксисом для постфиксных выражений и операторов - PullRequest
0 голосов
/ 09 ноября 2011

В следующем случае,

int i = 0;
int j = 42;
i = j++;

Я знаю, ++ является оператором posfix, поэтому j является выражением posfix или вы должны сказать, j++ является выражением posfix?

1 Ответ

6 голосов
/ 09 ноября 2011

Синтаксически, j и j++ являются постфиксными выражениями.

См. Грамматику в разделе 5.2 стандарта C ++ 2003:

postfix-expression:
    primary-expression
    ...
    postfix-expression ++

(j isтакже первичное выражение; j++ - это не так.)

Тот факт, что первичное выражение является разновидностью постфиксного выражения (даже если оно не содержит постфиксного оператора), в основном зависит отудобство для определения синтаксиса языка.Нет особого смысла называть j выражением postfix, если только вы не говорите о разборе исходного кода C ++ (или C).

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