LINUX.ORG.RU

В данном случае разницы нет.
Операция ',' последовательно вычисляет свои аргументы и результатом операции является значение левого аргумента.

Vinick ★★
()

Разница есть. ',' в этом контексте является бинарным оператором со всеми вытекающими последствиями. т.е. имеет два операнда и результирующее значение, может быть перегружен и т.д., а ';' - просто разделяет два языковых предложения.

На практике это выражается в следующем: Например, можно написать

if (a=b,f(a)) { ... }

но нельзя

if (a=b;f(b)) { ... }

Вот такая фигня

GameMagister
()
Ответ на: комментарий от Vinick

Правого, а не левого. Вычисляются слева направо. Таким образом, разница существенная: в первом случае в a оказывается значение f(b), во втором случае -- b.

ringill
()
Ответ на: комментарий от GameMagister

Да, про "существенную разницу" прогнал, сорри.

ringill
()
Ответ на: комментарий от anonymous

ты бы свой лучше попридержал

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.