基本概念:堆与堆栈
来源:互联网 发布:硬盘检测软件 编辑:程序博客网 时间:2024/04/30 08:33
C#中根据存放数据的方式不同,可以将数据类型分为值类型和引用类型两大类,它们的保存位置不同。值类型变量直接把变量的值保存在堆栈中;引用类型的变量把实际数据的地址保存在堆栈中,而实际数据则保存在堆中。
这里涉及到两个基本概念的区分:堆和堆栈。
注意,堆和堆栈是两个不同的概念,在内存中的存储位置也不相同。堆一般用于存储可变长度的数据,如字符串类型;而堆栈则用于存储固定长度的数据,如int等。由数据存储的位置可知,当把一个值变量赋值给另一个值变量时,会在堆栈中保存两个完全相同的值,也就是产生“副本”。
而把一个引用变量赋值给另一个引用变量时,则会在堆栈中保存对同一个堆位置的引用,即在堆栈中保存的是同一个堆的地址。
在执行数据操作时,对于值类型,由于每个变量都有自己的值,因此对于一个变量的操作不会影响其他的变量。而对于引用类型的变量,对一个变量的数据执行操作就是操作这个变量在堆中的数据。如果两个引用类型的变量引用同一个对象,实际含义就是他们在堆栈中保存的堆的地址相同,因此对一个变量的操作,会影响到引用同一个对象的另一个变量。
- 基本概念:堆与堆栈
- 堆与堆栈
- 堆与堆栈
- 堆与堆栈
- 托管堆与堆栈
- 堆栈与堆的区别
- 堆栈与堆的区别
- C# 堆栈与堆(托管堆)
- 堆、堆栈与数据结构中的堆
- C# 堆栈与堆(托管堆)
- C# 堆栈与堆(托管堆)
- 堆、堆栈与数据结构中的堆
- 堆、堆栈与数据结构中的堆
- 栈(堆栈)与堆的区别
- 转载: 堆栈 堆与栈的区别
- {C语言} 堆、栈与堆栈SP
- 栈(堆栈)与堆的比较
- Java堆与堆栈理解总结
- csdn 上的第一篇文章!
- Canon MF8100 Series Printer driver install on Windows 7
- c# 中form调用并操作web脚本
- 逆向工程日记2--WINDOWS优化大师
- 学习C++的50条警言
- 基本概念:堆与堆栈
- 参数初始化表
- windbg.txt
- 谢鸣
- Ubuntu安装oracle10G
- 关于http读取html文件的错误
- sql语句
- 随机取数
- vim 的自定义快捷键设置