局部变量内存分配情况:
局部变量保存在栈中(保存地址由高地址到低地址)。
先定义先分配内存。
由此可见局部变量分配空间的顺序和变量的声明顺序直接相关,同时按照内存地址由高到低的顺序进行空间分配.
先定义,先分配,地址由高到低
数组越界问题(看图3和图4)
由于首先声明的是数组a[4],于是在高位上优先分配a,低位上分配i,因此可以发现这是并没有出现&i = &a[4]的情况。此时要是执行的话程序就不是假死了,直接是内存出错。
由此可以发现&i =&a[4],因为先声明的是i,然后才是a[4],故i处于高位,a处于低位,但是越界后a[4]来到高位,覆盖i。