【问题标题】:Visual basic first element of array数组的Visual Basic第一个元素
【发布时间】:2013-10-13 17:09:26
【问题描述】:

我刚刚开始使用 Visual Basic。

数组的第一个元素

dim y(9) 为整数

里面会有0-81-9元素吗?

即如果我这样做了

y(1) = 84

这是否使数组中的第一个或第二个元素等于 84?

我查看了一些在线资源,有点困惑。

谢谢

【问题讨论】:

    标签: .net arrays vb.net elements


    【解决方案1】:

    VB.NET 中数组的第一个位置为零;相同的规则适用于任何需要索引的内置集合/函数以及其他 .NET 语言,如 C#。另一方面,“旧”VB(VB6 和更早版本或 VBA)的数组第一个索引为零,内置函数的第一个索引为零(这对于从 VB 到 VB.NET 的人来说有点混乱)。所有 VB 版本(.NET 和旧版本)的共同点和与 C# 等其他语言不同的是,实例化数组时使用的数字(y(9) 中的 9)并不表示它的大小,而是它的最后一个索引( y(9) 的大小为 10)。

    总的来说,您的数组包括 10 个位置:从 0 到 9。

    【讨论】:

    • 干杯,这就是我感到困惑的地方。
    • @DanMc 有点令人困惑。现在你在 .NET 和零规则一切:)
    • "old" VB (VB6 和更早版本或 VBA) 与 Pascal 一样,具有任意整数作为第一个位置:Dim myArray(-3 to +3)。这有时会让来自 c 的人感到困惑。
    • @david 实际上,对于几乎所有编程语言来说,这似乎都很奇怪。即使是基于 1 的数组的传统 VB 功能也非常出色。还有很多语言是基于 C 的,因此不需要来自实际的 C。无论如何,这种情况现在在稍微不同的格式下更为常见:键值集合/字典的键,其中索引可以几乎可以是任何东西(整数、字符串或其他)。大多数现代语言都支持这种结构。效率是另一回事。基本(基于 0、1)的数组通常效率更高。
    • @varocarbas 我不做 ARM 汇编,但看看我的 8086 汇编,从零开始的数组效率不是很高 - 充其量,将起点和终点提升到高级代码是由编译器有效处理,当编译器实际上具有语义信息时,这种情况更有可能发生。我指定 c 是因为在 c 之前讨论了基于零的数组的原因(cf Dijkstra),而效率不是原因 - (cf FORTRAN)。
    【解决方案2】:

    VB.NET中数组元素从0开始

    来自MSDN的示例:

    您可能还会觉得这很有趣:- Why numbering should start at zero

    【讨论】:

      猜你喜欢
      • 2014-06-06
      • 1970-01-01
      • 2018-12-24
      • 2012-12-27
      • 1970-01-01
      • 2022-11-16
      • 1970-01-01
      • 1970-01-01
      • 2022-11-12
      相关资源
      最近更新 更多