0

可能重复:
数组或列表是否在 C# 中默认通过引用传递?

在我的机器上,指针是 32 位的,因此传递类对象的函数将传递 32 位(指向类对象的指针)。我不断听到关于 c 语言中数组的矛盾之处,即它们是引用类型,并且它们是按值传递的。那么有人可以告诉我传递5个浮点数组的函数在传递该数组时将使用多少位?它是指针的大小,还是 5 * 32 的大小为 5 个浮点数?

4

3 回答 3

2

数组是引用类型,因此它只传递引用,而不是所有值。

将数组作为参数传递(C# 编程指南)

数组可以作为参数传递给方法参数。因为数组是引用类型,所以该方法可以改变元素的值

您可能会看到 Jon Skeet 的这篇文章:C# 中的参数传递

于 2012-09-19T04:16:28.403 回答
1

所有数组都是引用类型:

引用MSDN

数组类型是从抽象基类型 Array 派生的引用类型。由于此类型实现了 IEnumerable 和 IEnumerable,因此您可以在 C# 中的所有数组上使用 foreach 迭代。

因此,将数组传递给函数会传递一个引用,无论数组中有多少元素,它的大小都是相同的。在您的示例中,这将是 32 位。

于 2012-09-19T04:17:08.467 回答
1

数组是引用类型,每个引用是 4 字节(在 32 位系统上)或 8 字节(在 64 位系统上)大。作为参考,对于大小,只需将其长度乘以参考大小并添加类定义开销(变量少字节,内存管理少字节)。

于 2012-09-19T04:17:19.533 回答