<span style="font-family: courier new,monospace;">Liam is the closest with his analogy with C.</span><br style="font-family: courier new,monospace;"><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">
Without clouding the issue with facts, I&#39;d summarize with:</span><br style="font-family: courier new,monospace;"><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">a) Every time the &#39;my&#39; statement is executed, it creates the variable anew.
</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">&nbsp;&nbsp; (I.e. allocates memory for the variable. etc.)</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">
b) Regardless of whether or not you take a reference to it.</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">c) Regardless of whether garbage collection occurs.</span>
<br style="font-family: courier new,monospace;"><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">And looking for the same memory address doesn&#39;t mean</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">it is, or is not the &#39;same variable&#39; because free() &amp; malloc()</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">
and a bunch of other code may, or may not have been run<br></span><span style="font-family: courier new,monospace;">(that you don&#39;t know of) </span><span style="font-family: courier new,monospace;">to re-set-up that variable,
</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">even if it _was_ the same address.</span><br style="font-family: courier new,monospace;"><br>