当我们在函数内部定义一个变量(这里不是主变量)时,是在运行时完成内存分配还是为我们服务器?
当我有以下情况时会发生什么:
int f()
{
int a=10;
........
}
main()
{
int i;
scanf("%d",&i);
while(--i)
f();
..........
}
Run Code Online (Sandbox Code Playgroud)
函数f()中的'a'是否创建'我'?动态分配也是如此?
Hen*_*man 11
a每次调用时都会生成局部变量f().它是设置"堆栈框架"的一部分,f()并且几乎没有任何时间成本.它占用了一个小堆栈空间,但不超过一个必要的堆栈空间int.
在while(--i) f(); 函数期间f()调用10次,每次'new' a占用相同的内存点.我们不调用这种动态分配,它被称为堆栈,本地或自动分配.
| 归档时间: |
|
| 查看次数: |
548 次 |
| 最近记录: |