我对局部变量的存储空间分配和使用不明白是什么原理,望高手讲解一下。
比如有函数
void fun()
{
int a;
int b;
string c;
}
我们都知道局部变量是分配在栈空间里,而且存储空间的栈就是有先进后出的机制,如上函数的栈空间里,
那么非栈顶变量应该是不能访问的,那么为什么我们能访问非栈顶变量呢?
是不是局部变量的存储方式与访问方式是不一样的,或者说是分开的?
我对局部变量的存储空间分配和使用不明白是什么原理,望高手讲解一下。
比如有函数
void fun()
{
int a;
int b;
string c;
}
我们都知道局部变量是分配在栈空间里,而且存储空间的栈就是有先进后出的机制,如上函数的栈空间里,
那么非栈顶变量应该是不能访问的,那么为什么我们能访问非栈顶变量呢?
是不是局部变量的存储方式与访问方式是不一样的,或者说是分开的?