‫欢迎回来｡
‫在本视频中, 我们将了解值类型和引用类型之间的区别｡
‫因此, 数据类型可以根据它们占用内存位置的方式分为两类｡
‫我们将详细研究这些类型｡
‫首先, 我们来看看值类型｡
‫因此, 顾名思义, 它是一种数据类型, 当声明并分配一个值时,
‫它将该值直接保存在自己的内存空间中｡
‫好吧, 我会的
‫所以值类型使用堆来存储值值类型的例子是数据类型, 比如int, float, long, double, char, bool,
‫decimal, double.
‫简单的数据类型, 现在让我们看一下值类型的图形表示｡
‫假设我们创建了一个新变量Z, 它的值为234｡
‫因此, 现在该值234将被存储在RAM中该Z变量的位置处｡
‫好吧, 我会的
‫然后, 如果我们更详细地查看引用类型,
‫我们可以看到它是一个变量类型, 它不直接将值存储在内存中, 而是只存储实际数据的内存位置｡
‫这里的变量存储数据的内存引用, 而不是直接存储数据｡
‫这就是巨大的差别｡
‫对不对？
‫所以引用数据类型是字符串类数组, 基本上是比较复杂的数据类型, 可以说需要更多的空间｡
‫这样做是为了保存资源, 并使我们的程序尽可能快,
‫因为这样我们就不需要得到的值和移动的值所有的时间｡
‫但是我们可以说, 值在那个位置, 所以你可以从那里得到它,
‫而不是在我们使用它的时候到处复制数据｡
‫好吧, 我会的
‫所以当我们复制这个引用类型的数据类型时, 它只会复制数据的内存地址｡
‫所以我们会有两个变量指向同一个数据｡
‫让我们来看看这里的图片｡
‫所以我们有这个字符串, 首先是Dennis, 然后是变量值地址, 最后是实际值.
‫所以你可以看到｡
‫这里的值就是你在这里看到的地址, 但是变量名的地址在这里.
‫因此, 变量值地址和实际值存储在RAM中的两个不同位置｡
‫因此, 总的来说, 变量值地址非常短｡
‫这其实只是一个非常基本的数字｡
‫但另一方面, 实际值可能相当复杂｡
‫因此, 它可能是一个非常复杂的对象, 其中存储了大量信息｡
‫这就是为什么我们的程序最好使用这种方法, 或者一般来说, C升｡
‫假设你去租了一辆车, 所以你想买一辆车｡
‫好吧, 我知道了
‫所以你去租车, 然后你在柜台, 你想拿车, 你已经订购｡
‫柜台上没有你的车, 但有你车的位置｡
‫所以它会给予你钥匙, 它会告诉你, 沿着这个方向, 你会在某某排, 某某列,
‫某某层, 随便什么地方找到车｡
‫所以你可以直接去那里取车｡
‫因此, 他们没有把车放在柜台里, 因为车太大了,
‫所以这是行不通的, 他们在车所在的地方有所有这些参考资料, 这样你就可以很容易地把汽车拿起来,
‫尽管这个例子缺乏我们这里的其他复杂性｡
‫但也许这有助于您更好地理解引用类型｡
‫好吧, 我会的
‫现在就这样吧｡
‫让我们回到科迪｡
‫下一个视频中见｡