Why is KVOContext an Int?

On page 197:

I understand that it is used as a pointer, but how can KVOContext be an Int with value 0? (Could it be any value? What’s going on under the hood?)
Furthermore, why does it have to be defined outside the class? Is it in the global scope at this point? If so, could that still cause clashes with other classes using KVOContext?
As you can see, I’m a little confused about what exactly is going on here. I’d really appreciate any help.
Many thanks.