Цитата из книги "Как программировать на C++, Дейтел Х., Дейтел П"
Выражение, содержащее операции $$ и ||, оцениваются только до тех пор, пока его истинность или ложность не станут очевидной, Таким образом, анализ выражения
gender == 1 && age >= 65
будет немедленно остановлен, если значение gender не равно 1 (т.е. условие в целом заведомо ложно), и продолжится, если значение gender равно 1 (т.е. в целом может оказаться истинным, если будет истинным условия age >= 65)
Типичная ошибка программирования 2.21
В выражениях, использующих операцию &&, может оказаться, что одно условие – назовём его зависимым - может требовать, чтобы другое условие было значимо при оценке зависимого условия. В этом случае зависимое условие должно быть помещено после другого условия, в противном случае может произойти ошибка.
И что-то я не пойму, в каких случаях эта ошибка может возникнуть?
Может быть так:
x=1;
y=3;
x>2 && (x=y)>0 неправильно
(x=y)>0 && x>2 правильно