Geoscape Soldier data has a static pointer; and the Battlescape BattleUnit has a pointer to this Geoscape Soldier too (of course only if the given BattleUnit corresponds to a soldier).
Check the OpenXcom source code to see the structure details.
There is also a pointer to the currently selected unit (can be a soldier, a HWP, an alien, or even null)... again check the source code... it's easier to search for it when you know where to look and what to expect.