1.局部变量存放在栈上,生命周期属于临时(当调用函数时产生,当返回时消亡)局部变量无链接,当等不到链接就消亡了。
2.堆部变量生命周期空间客观存在,像是一个图书馆有借有还,从申请时诞生,使用,直到free。因此在实践中都是反复malloc并free的,不麻烦。
3.全局变量在数据段与bss段,生命周期为直到程序结束(永久)。全局变量存放的地方不能够被自己释放,所以太多全局变量会出现问题,自己买的东西属于自己,自己不去使用别人也用不了。
4.代码段与只读段(函数),生命周期为直到程序结束(永久)。但有时在这些存储区域不但只有代码。还要const常量、字符串常量,这些有时会存放在rodata段有时候存放在代码段。