c# - 为什么数组大小声明使用 "1"作为第一个索引?

标签 c# java arrays

我注意到关于 C#/Java 的一些事情是(目前对我而言)数组大小声明和数组大小的默认第一个索引似乎不一致的问题。

使用数组时,假设您要创建一个新的整数数组大小 3 ,它看起来像这样:

int[] newArray = new int[3] {1, 2, 3};

完全找到并可读...对吗?

编程语言的标准似乎规定“第一个”索引是 0 .

使用该逻辑,如果我有兴趣创建一个大小为 3 的数组,我真的应该这样写:

int[] newArray = new int[2] {1, 2, 3};

等一下.. VS 抛出一个错误,说 an array initialize of length 2 is expected .

所以循环遍历数组时第一个索引和数组大小声明不一致?前者使用 0 - 基于索引,第二个是 1 -th 指数。

这不是任何形式或方式的游戏破坏/改变,但我真的很好奇为什么这里存在差异,或者 hell ,如果这根本不是一个问题(就像我说的,这不是游戏破坏无论如何,但我很好奇为什么这样做)。

我现在可以想到为什么 1 的原因-th 基于索引将被使用:

在 for 循环中,您将使用 < newArray.Length而不是 < newArray.Length - 1< newArray.Length .

使用 List过了一会儿,然后回到需要声明的大小数组让我有点措手不及。

最佳答案

因为您声明的数组包含 number 个元素。

我不确定这是怎么不一致。

将一根圆木锯成 3 段需要锯多少次?提示:不是 3 次。

另请注意,在您的帖子标题中,您如何错误地将数组大小声明称为“索引”。

关于c# - 为什么数组大小声明使用 "1"作为第一个索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22511775/

相关文章:

java - 如何检查 Android 中可用的互联网?

java - 如何将 5 行数据作为 1 个元素存储在 ArrayList 中?

java - 打印出任何数组的元素

java - 使用旧身份验证 token 将用户迁移到新应用程序 - InstallReferrer 自定义参数

c# - Mongodb In Query 对每条记录都有限制

c# - 在 Fluent Nhibernate 的 AsMap 中使用 Component 作为 IDictionary 索引

c# - SqlDataSource OnInserted 过早触发

java - 无法通过 Apache Tomcat 访问网络文件夹

java - 从线程更新数组

c# - 使用 C# 设置 mediaElement 的源