关键区别–值类型与参考类型
一种编程语言被设计用来给计算机发出执行任务的指令。该程序可以操作包含数字、字符和字符串的数据,并向用户生成信息。用特定编程语言编写的一系列指令就是一个程序。在C#等编程语言中,有标记。它们是关键字、标识符、文字和运算符。存储数据的保留内存位置称为变量。变量可以存储某种类型的值。数据类型可分为值类型和引用类型。价值型和参照型的区别取决于两个特征。这些是变量存储在内存中的位置,以及它们在赋值语句中的行为方式。本文讨论了值类型和引用类型的区别。值类型和引用类型之间的关键区别在于,值类型在其自己的内存空间中保存数据值,而引用类型保存指向另一个保存数据的内存位置的指针。
目录
1. 概述和主要区别
2. 什么是价值类型
3. 什么是参考类型
4. 值类型和引用类型的相似性
5. 并列比较-值类型与表格形式的引用类型
6.摘要
什么是值类型(value type)?
值类型可分为两类。它们是预定义的类型和用户定义的类型。预定义的类型由编程语言提供。它们可以是数字、字符或十进制类型。数值类型可以是整数类型、浮点类型和十进制类型。整数类型可以进一步分为有符号和无符号。有符号整数可以存储正数或负数。**yte、short、int和long是有符号数据类型。
sybte是一个字节,short是两个字节,int是4个字节,long是8个字节。无符号类型存储正值。byte、ushort、uint和ulong是无符号类型的示例。浮点类型可以存储带小数点的数值。float用于存储32位单精度浮点值,double用于存储64位单精度浮点。十进制类型用于高精度值。char数据类型用于在内存中存储单个字符。有时需要存储真值或假值。布尔函数用于此。这些是编程语言提供的值类型的一些示例。
用户还可以创建值类型。两种这样的用户定义值类型是结构和枚举。结构包含不同类型的数据。它类似于一个类。“struct”关键字用于声明结构变量。结构示例如下。
雇员结构{
公共国际机场;
公共字符串名称;
}
枚举用于提高代码的可读性。它用来给数字起名字。“enum”关键字用于声明枚举。下面是enum的一个示例。e、 g.–枚举颜色{黑色、白色、紫色}。enum关键字通过指定从0开始的值来自动枚举单词列表。根据上面的例子,黑色被分配给0,白色被分配给1,紫色被分配给2。如果它被写为enum Color{black,white=3,purple},那么黑色被赋值为0,紫色被赋值为4。这些是一些值类型的示例。它们存储在堆栈中。将值赋给另一个变量时,该值将复制到新位置。因此,内存中存在两个相同值的副本。
什么是参考类型(reference type)?
引用类型可以分为两类:用户定义类型和预定义类型。一些用户定义类型的例子是类、接口和数组。类用于创建对象。类由数据成员和方法组成。数据成员描述属性,方法描述行为。接口只包含成员的声明。成员应该由派生类定义。数组可以存储同一数据类型的多个元素。
预定义的类型是对象类型和字符串类型。对象类型是所有其他用户定义类型的基类型。对象引用用于绑定到任何特定类型的对象。字符串文本作为值存储在字符串对象中。使用它们可以完成复制、比较和连接等操作。这些是引用类型的一些示例。引用类型存储在堆上。将一个引用变量分配给另一个引用变量时,只复制引用。实际值保持不变。
什么是价值型与参照型的相似性(the similarity between value type and reference type)?
- 值类型和引用类型都是编程中的数据类型类别。
值类型(value type)和参考类型(reference type)的区别
值类型与引用类型 | |
值类型在其自己的内存空间中保存数据值。 | 引用类型保存指向另一个保存数据的内存位置的指针。 |
转让 | |
在值类型中,值被复制到新位置,因此内存中有两个相同值的相同副本。 | 在引用类型中,复制引用,而实际值保持不变。 |
存储位置 | |
值类型存储在堆栈中。 | 引用类型存储在堆上。 |
示例 | |
int、float、double、struct和enum是值类型的一些示例。 | 类、数组、接口是引用类型的一些示例。 |
总结 - 值类型(value type) vs. 参考类型(reference type)
数据存储在称为变量的保留内存位置中。每个变量存储一个特定的数据类型。数据类型可以分为两类。它们是值类型和引用类型。值类型和引用类型的区别在于,值类型在其自己的内存空间中保存数据值,而引用类型保存指向保存数据的另一个内存位置的指针。