x=-1 y=-1 and z=-1
Here concept of short circuiting is applied
for example a&&b if a is true means a is having any value other than 0 then we will see next part b..if b is true then whole expression will give value as 1(true) as T&&T=T.if a is false in that case whole expression will be false and return 0(false) and next part b will not be executed because we have declared the result by seeing the first part a as F&&(anything)=F
on the other hand a| |b .if a is true then whole expression is true does not care about second one,in this case b will not be executed as T | | (anything ) =T .if a is false then we will see the next part b ,if b is true then whole expression will return true otherwise false. F | | F=F ,F | | T =T
now we come to our ques,here ++x will be executed and the value of x becomes 0 (false) so ++y will not be executed because 0&&(anything) =0 .now come to the second part ++z ,z will become 0 after increment so 0 | | 0 will return value 0.
hence the final value of x=0 ,y=-1,z=0