Я не эксперт, но вот мои взгляды:
cout << ((--x + y && y++ - x) || x-- + (--y + x++)) << endl;
((--x + y && y++ - x)
разрешается в -4
, что не равно нулю и, следовательно, верно.Так что x-- + (--y + x++))
не нужно проверять и не нужно выполнять этот код.
в выражении (--x + y && y++ - x)
есть --x, так что это приведет к уменьшению x, а y ++ приведет кс шагом в у, т.е.у = -3 + 1