// & takes the address of an object.
so what happens here ? are all variables not maintained in call stack, so that they can be maintained even when the call stack is popped. does the compiler/garbage cleaner clean up other variables, but not these, as it detects that these variables are still in use that's kinda cool, but also unnecessarily putting pressure on the compiler