C语言块内定义的变量的生存周期
现在很多编译器都支持在函数内块内定义声明变量,显然它的作用域只是局限于块内,那么它在内存中是否也是只是在块内存在实体呢?
为此我们写个例子来看一下汇编:
int main()
{
for (int i = 0; i < 200; i++)
{
if (1)
{
int a = 100;
printf("%d\r\n", a--);
}
}
return 0;
}
可以看到在if块结束后每次都会将堆栈释放。