newonce when we populated the thisClan variable. Thus there is only 1 clan we simply have 2 pointers pointing to it.
Clan otherClan = thisClanwhat we where doing was copying the data from thisClan and writing it into a new point in memory. When we later edited that second point in memory it had no impact at all on the first. Put more simply the value type example using structures created 2 points in memory of type Clan while the class example created 1 point in memory of type Clan.