以局部变量为例,它的生命周期是函数结束。因为它存储在栈上,栈上只存储一类变量,就是建立栈帧。函数调用建立栈帧,局部变量存储在里面,函数结束这个变量就销毁了。但是用stactic修饰的静态变量不会销毁,因为它存储在静态区,静态区是整个进程都存在的,进程结束静态区中的变量才销毁,常量区的变量亦是如此。
堆区是不受作用域的限制,你malloc出来就可以用了,一直可以用,直到你把它free掉,这一过程是你主动控制的
以局部变量为例,它的生命周期是函数结束。因为它存储在栈上,栈上只存储一类变量,就是建立栈帧。函数调用建立栈帧,局部变量存储在里面,函数结束这个变量就销毁了。但是用stactic修饰的静态变量不会销毁,因为它存储在静态区,静态区是整个进程都存在的,进程结束静态区中的变量才销毁,常量区的变量亦是如此。
堆区是不受作用域的限制,你malloc出来就可以用了,一直可以用,直到你把它free掉,这一过程是你主动控制的