вначале x=1, y=1, z=1 ++x ++y && ++z | |
((++x)(++y)&&(++z)) | Сопоставляем операнды с операциями. |
(2(++y)&&(++z)) и x=2 | Вычисляем выражение слева направо |
(TRUEчто-то еще) | Поскольку левый операнд операции имеет значение ИСТИНА, нет смысла проводить вычисления дальше. Фактически в языке С гарантируется, что в подобных случаях вычисления прекращаются. Иными словами, логическое выражение вычисляется слева направо до тех пор, пока не станет известно его значение, т.е. для данной задачи x и y останутся равными 1. |