动态变量和静态变量的区别,堆和栈的区别
2012-02-25 10:10
260 查看
动态变量和静态变量的区别:
1、存储位置 动态 变量:存储在内存出栈 数据区 静态变量:存储在全局数据区(静态数据区)
2、生命期 动态变量:根据你定义的位置确定,比如你在一个函数中定义的,那么超出该函数范围变量将失效 静态变量:程序结束时才释放
3、作用域
动态变量:同样的要根据你定义的位置才能确定,和第二点的一样
静态变量:当前文件中有效
堆和栈的区分:
分配方式:堆都是动态分配的,没有静态分配的堆。
栈有2种分配方式:静态分配和动态分配。静态分配是编译器完成的,比如局部变量的分配。动态分配由alloca(),alloca的函数返回的时候,它分配的内存会自动释放,但是栈的动态分配和堆是不同的,堆需要手动释放。
堆是通过new,malloc,calloc,realloc等来分配的内存,需要手动析构,栈由系统管理,无需人为处理。
相关文章推荐
- 【心得】在C#中使用静态变量const和动态变量readonly的区别
- 动态变量和静态变量的区别,堆和栈的区别
- 动态变量与静态变量的区别
- 动态变量和静态变量的区别,堆和栈的区别
- 动态变量和静态变量的区别,堆和栈的区别
- 动态变量和静态变量的区别
- 【面试】动态变量与静态变量的区别
- 静态变量与动态变量的定义与区别
- php中的静态变量和动态变量的区别--框架加载变量时运用
- 【心得】在C#中使用静态变量const和动态变量readonly的区别
- 动态变量和静态变量的区别,堆和栈的区别
- 动态变量和静态变量的区别,堆和栈的区别
- 动态变量和静态变量的区别
- C语言动态变量和静态变量的区别
- 静态变量和实例变量的区别?
- 静态变量和成员变量的区别
- 静态变量与实例变量的区别
- java中静态变量和实例变量的区别详细介绍
- 堆栈,静态变量和普通变量,静态函数和普通函数的区别
- Java基础——成员变量、局部变量和静态变量的区别