I&#x27;d say that it doesn&#x27;t have to read &#x27;a&#x27; again because these are separate variables and there&#x27;s no requirement for &#x27;a&#x27; and &#x27;array&#x27; to be contiguous, or for that matter &#x27;a&#x27; being in memory at all instead of just being in a register. An OOB access <i>could</i> overwrite the memory storing &#x27;a&#x27;, but I think this case of relying on the ordering and location of objects in memory is just not something any C code would ever have to do.