为什么数组大小声明使用“1”作为第一个索引?

2024-04-21

我注意到 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-th 为基础的索引,第二个为1-th 索引。

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

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

在 for 循环中你会使用< newArray.Length相对于< newArray.Length - 1 or < newArray.Length.

与...一起工作List看了一会儿,然后回到需要声明大小的数组,这让我有点措手不及。


因为您正在声明数组number它将包含的元素数。

我不确定这是如何不一致的。

需要锯多少次才能将原木切成 3 块?提示:不是3次。

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么数组大小声明使用“1”作为第一个索引? 的相关文章

  • .NET 5 EF Core SaveChangesAsync 因错误而挂起

    尽管这个问题有很多结果 但没有一个真正给我明确的答案 每次我尝试通过 AddAsync 和 SaveChangesAsync 方法插入错误数据 例如重复的主键 时 我都会看到以下日志 执行 DbCommand 失败 15 毫秒 我还在 SQ
  • 应用程序处于中断模式。您的应用程序已进入中断状态,

    我发现自己遇到了同样的问题here https stackoverflow com questions 36204009 disable break mode page in vs2015 我在 dll 中使用 Windows 窗体 这是针
  • 设置 JAVA_HOME 变量时出现问题

    所以我刚刚下载了 Android Studio 并尝试设置 JAVA HOME 变量以便我可以运行它 我使用的是 Windows 8 并按照我找到的所有说明进行操作 但无济于事 转到高级系统设置 gt 环境变量 然后使用包含我的 jre7
  • 我在使用 ado.net 时收到错误 Argument 2 may not be pass with ref keywords

    int t 0 cmd Parameters AddWithValue Res ref t 我在第二行收到错误 参数 2 不能与 ref 关键字一起传递 您只能通过引用传递参数ref if the 范围 is a ref参数也是如此 Add
  • 如何告诉 IntelliJ 使用 Java 1.6 JDK 启动 gradle?

    一个简单的问题 即使经过几个小时的尝试和搜索 我也无法弄清楚 我安装了 Java 6 和 7 如何告诉 IntelliJ 使用 JDK 版本 1 6 启动 Gradle 构建 无论我做什么 IntelliJ 都会以以下方式开始我的 grad
  • Apache Kafka 是否提供异步订阅回调 API?

    我的项目正在将 Apache Kafka 视为老化的基于 JMS 的消息传递方法的潜在替代品 为了让这个过渡尽可能的顺利 如果替代的排队系统 Kafka 有一个异步订阅机制那就更理想了 类似于我们当前项目使用的JMS机制MessageLis
  • 如何修改生成的SOAP请求?

    我正处于创建输出拦截器并从 SOAP 消息中获取 OuputStream 的阶段 但是 如何在将 SOAP 信封发送到端点之前对其进行修改呢 我想删除一些 xml 元素 一种方法是获取文档并通过 XSLT 转换运行它 您可以通过调用来获取拦
  • 在 C# 中使用命名空间别名有什么好处? [复制]

    这个问题在这里已经有答案了 使用命名空间别名有什么好处 仅仅是为了简化编码吗 仅当与类发生冲突时我才使用名称空间别名 对我来说 这根本没有简化 我的意见是 如果没有必要 就不要使用
  • spring data jpa 过滤 @OneToMany 中的子项

    我有一个员工测试实体是父实体并且FunGroup信息子实体 这两个实体都是通过employeeId映射 我需要一种方法来过滤掉与搜索条件匹配的子实体 以便结果仅包含父实体和子实体 满足要求 员工测试类 Entity name Employe
  • 如何同步nosql db(ravendb)中的更改

    我已经开始在 RavenDB 的示例上学习 NoSQL 我从一个最简单的模型开始 假设我们有由用户创建的主题 public class Topic public string Id get protected set public stri
  • C++ 中是否有与 PHP 的explode() 函数等效的函数? [复制]

    这个问题在这里已经有答案了 可能的重复 在 C 中分割字符串 https stackoverflow com questions 236129 splitting a string in c 在 PHP 中 explode 函数将获取一个字
  • JSP 和 scriptlet

    我知道现在使用 scriptlet 被认为是禁忌 没关系 我会同意Top Star的话 因为我目前只是Java新手 到目前为止我听到的是 它是为了让设计师的生活更轻松 但我想知道 这是否与JSP页面的性能有关 另一方面 如果只是为了 让设计
  • 如何从 Access 数据库中读取“是/否”值作为布尔值?

    帮我找回YES NO来自 MS Access 的布尔格式数据类型 我尝试解析它 但它总是返回 false 更新 实际上不是问题抱歉 它确实接受 YES NO 作为布尔值 OleDbconnection dbConnect new OleDb
  • C 变量声明的效率 [重复]

    这个问题在这里已经有答案了 例如 在 C 中声明一个变量需要多长时间int x or unsigned long long var 我想知道它是否会让我的代码在类似的事情中更快 for conditions int var 0 code 这
  • 将带有时区的 Joda-Time `DateTime` 转换为没有时区的 DateTime?

    Given a DateTime http www joda org joda time apidocs org joda time DateTime html例如2015 07 09T05 10 00 02 00 using 乔达时间 h
  • Xcode 7 调试器不会中断内联标头函数

    过去五年我一直在各种 C 项目中使用 Xcode 没有出现这个问题 今天 我打开了一个较旧的项目 大约 2 年前 并尝试通过在该函数中放置一个活动断点来调试头文件中的内联函数 由于某种原因 调试器不会中断此代码 但是 如果我在调用该函数的
  • 使用多态对象数组进行 JSON 反序列化

    我在涉及多态对象数组的 JSON 反序列化方面遇到问题 我已经尝试过记录的序列化解决方案here https stackoverflow com questions 5186973 json serialization of array w
  • 线程“main”中出现异常 java.lang.UnsatisfiedLinkError: ... \jzmq.dll: 找不到依赖库

    我有一个使用 ZMQ 的 java 应用程序 我已经能够在我的 Win7 PC 上运行它 我将 jzmq dll 放在 jar 可执行文件所在的同一文件夹中 然后通过命令 java jar myapp jar 运行它 我的下一步是将其移至服
  • 如何在c#中创建多线程

    我需要监听机器中的所有串行端口 假设我的机器有 4 个串行端口 我必须创建 4 个线程并开始分别使用附加线程监听每个端口 我使用此代码来获取我的机器中的端口数量 private SerialPort comPort new SerialPo
  • 在windows + opengl中选择图形设备

    我知道如何使用 openGL 打开窗口 使用 Win32 或其他工具包 但是当系统有2块显卡时 如何选择要渲染的图形设备 我的编程语言是 C 我专注于 Windows 但任何示例都将受到欢迎 编辑 也许更好地解释我的问题是个好主意 以便添加

随机推荐

  • JavaScript 将字符串字符作为数组访问

    这样做可以吗 var myString Hello alert myString 0 shows H in an alert window 或者应该使用 charAt 0 或 substr 0 1 来完成 我所说的 可以吗 我的意思是它可以
  • Cython - 将数组指针转换为 Python 对象

    好吧 我已经快完成这个了 我可以尝尝它的味道了 在过去的几周左右的时间里 我一直在尝试创建一个 Python 扩展 以通过 Cython 与用 C 编写的库进行交互 在这里的人和几个朋友的帮助下 我已经成功完成了 98 的任务 唯一剩下的就
  • Websockets:npm 中的 Rachet 和 autobahn 兼容吗?

    我正在尝试Ratchet PHP 库 http socketo me 特别是 我一直在尝试整合他们的推式整合 http socketo me docs push演示到 React 应用程序中 他们的演示参考看似一次性的 autobahn J
  • 如何在 Electron 应用程序中显示“另存为”对话框?

    我正在编写一个要在所有平台上分发的 NodeJS Electron 应用程序 我有一个下载按钮 我想弹出一个 另存为 对话框 其中包含从服务器提供的文件 有人知道最好的方法吗 以下是我在本地运行节点应用程序时尝试过的方法 但在使用电子打包器
  • 没有预测器的 Sklearn 回归

    是否可以在 sklearn 中使用或不使用 即仅使用截距 预测器来运行回归 例如逻辑回归 这似乎是一个相当标准的类型分析 也许这些信息已经在输出中可用 我发现的唯一相关的事情是sklearn svm l1 min c但这会返回一个非空模型
  • 在 PHP 5.5.9 中的 PHP 开关中使用常量

    安装 PHP 5 5 9 后Ubuntu 14 04 https en wikipedia org wiki Ubuntu version history Ubuntu 14 04 LTS 28Trusty Tahr 29 Trusty T
  • 在调试器下运行时,AssignProcessToJobObject 失败并出现“访问被拒绝”错误

    You do AssignProcessToJobObject并且仅当您在调试器中运行时才会因 访问被拒绝 而失败 为什么是这样 这个问题让我困惑了大约30分钟 首先 您可能需要在您的应用程序中嵌入一个 UAC 清单 正如这里所建议的 ht
  • 从 iPhone 中的视频帧获取图像

    是否可以使用 iPhone SDK 从 iPhone 中的视频中抓取帧并将其保存或在应用程序中以任何方式使用它 除了播放 停止或访问视频的二进制数据之外 SDK 是否可以对视频进行任何控制 还可以知道用户停止观看视频的时间 我知道在 SDK
  • Android/Java WiFi 直接对等列表

    Yo 我正在尝试让 Android 设备 它是 Nexus 7 尽管我无法想象这有多重要 通过 WiFi Direct 的奇迹与 Raspberry Pi 进行通信 据说这是可能的 六个小时前似乎是比沿着服务器 客户端路线更好的解决方案 但
  • GridView“OrdersGridView”触发了未处理的事件 RowDeleting

    我一次又一次地收到这个错误 将数据加载到 GridView 中可以正常工作 但是当我想删除一行时 我收到了该错误
  • 在php中动态构建json数组

    我可以创建简单的 json 对象 如下所示 d array item gt name rate gt rating 但是 如果我想构建一个项目数组并动态执行它 因为我是从数据库查询构建它的 该怎么办 Update 让我更具体地说 我知道我必
  • XML 规范是否规定解析器需要始终将 \n\r 转换为 \n,即使 \n\r 出现在 CDATA 部分中?

    我在处理 xml 中的 line feed 和 carriage return 字符时遇到了问题 我知道 根据http www w3 org TR REC xml sec line ends http www w3 org TR REC x
  • 列表下方的按钮不显示

    我终于设法让我的列表正确显示 http stackoverflow com questions 5662277 how to line up intger output in custom android dialog https i st
  • 如何正确配置多个构造函数?

    我正在基于继承进行分配 并且创建了 2 个构造函数 它们应该执行不同的操作 一个构造函数没有任何参数 应该生成一个预定义值 另一个构造函数有 2 个参数 其中包括 String 和 int 类型的名称和年龄 我以某种方式重新配置了两个构造函
  • Javascript:JSON 键值未根据请求更新

    我想更新我的JSON基于选择的价值 为此 我只需将 json 值更新为data childShow true 现在根据网上截图 78 其实际值是false更新后它的值是true 参考第 84 行 它显示为第 85 行更新的值 但是当我展开该
  • 带有复选框的自定义 ListActivity 出现错误

    这是我的主要活动 我有带有复选框的自定义 ListActivity public class MainActivity extends ListActivity ListView list Button btn1 String url pr
  • Backbone js 并使用 fetch() 用数据填充模型

    我正在 Backbone js 中工作 并尝试使用 fetch 用数据填充模型 问题是提取似乎有效 但我的模型没有填充数据 代码片段 Backbone emulateHTTP true Backbone emulateJSON true C
  • CSS设置左固定右流体布局

    我需要使用 html 和 css 这样的布局 左侧宽度静态为 250px 右边是流动的 对于屏幕的其他部分 100 250px 我尝试这样做 我正在使用 sass wrapper width 100 margin 0 auto left w
  • 自定义 android AccelerateDecelerateInterpolator

    我正在尝试使用 AccelerateDecelerateInterpolator 并自定义它 我可以看到像 DecelerateInterpolator 这样的插值器有一个 因子 字段 因此您可以更改其行为 但 AccelerateDece
  • 为什么数组大小声明使用“1”作为第一个索引?

    我注意到 C Java 的一个问题是 目前对我来说 与数组大小声明和数组大小的默认第一个索引似乎不一致的问题 使用数组时 假设您想创建一个新的整数数组大小3 它看起来像这样 int newArray new int 3 1 2 3 完全可以