C/C++ question on enumerators?

Whoa!

Can you explain this bit

things = (animal)(things + 1)

?
Specifically what comes after the "="
How and why does this work ( I tested it and you are correct ) but it seems out of typical language.

Thanks!

Chris