当前位置: 首页 > 面试题库 >

如何在bash中将数组元素初始化为0?

何琨
2023-03-14
问题内容
declare -a MY_ARRAY=()

在bash中以这种方式声明数组是否会将所有数组元素初始化为0?

如果没有,如何将数组元素初始化为0?


问题答案:

您的示例将声明/初始化一个空数组。

如果要初始化数组成员,请执行以下操作:

declare -a MY_ARRAY=(0 0 0 0) # this initializes an array with four members

如果要初始化具有100个成员的数组,可以执行以下操作:

declare -a MY_ARRAY=( $(for i in {1..100}; do echo 0; done) )

请记住,bash中的数组不是固定长度的(索引也不必是连续的)。因此,除非知道数字应为多少,否则无法初始化数组的 所有 成员。



 类似资料:
  • 问题内容: 在我们有可以实现我的愿望的功能,但我怎么能将所有元素初始化为一个特定的值?每当我们编写时,这只会初始化一个大小为10的数组,其中所有元素均等于零。我只想为我的一个数组更改此初始化整数。即我想初始化一个数组,其中所有元素都等于。否则,我必须在初始化之后放置一个循环,该循环的范围从索引到索引,并且在该循环内,我将元素分配给。以下是用于更多理解的代码- 我会正确吗?还有其他方法可以做到吗?

  • 在中,我们有函数可以实现我的愿望,但是在中,我如何将所有元素初始化为特定的值呢?每当我们编写时,只需初始化一个大小为10的数组,所有元素都等于零。我只想为我的一个数组更改这个初始化整数。也就是说,我想初始化一个数组,它的所有元素都等于。否则,我必须在初始化后放置一个循环,范围从索引到索引,在该循环中,我将元素分配给。下面是更多理解的代码-- 我说得对吗?同样的还有别的办法吗?

  • 我在中用C创建了一个包含10个元素的数组,并仅为其中一些元素声明了值。当打印出数组时,我注意到其中一个元素(保持不变)没有初始化为零。相反,每次都将其初始化为不同的大值(即)。然后,我注释掉了所有代码,只保留了最初声明的数组。 运行代码时,数组的前8个元素被初始化为零,数组中的第9个元素被初始化为一个大值(如),该值每次都会更改,最后一个元素被一致地初始化为相同的非零数字。 有人知道为什么会这样吗

  • 问题内容: 我正在初始化这样的数组: NetBeans在此行指出一个错误: 我该如何解决这个问题? 问题答案: 上面的信息不正确(语法错误)。这意味着你正在分配一个仅可容纳元素的数组。 如果要初始化数组,请尝试使用: 注意两个声明之间的区别。将新数组分配给声明的变量时,new必须使用。 即使你纠正了语法,访问仍然是不正确的(你只能访问,因为Java中的数组索引是基于0的)。访问]将抛出。

  • 问题内容: 现在我正在使用一个列表,并且期望像这样: 我应该改用数组吗? 问题答案: 我想到的第一件事是: 但是,您真的需要对其进行预初始化吗?

  • 问题内容: 根据JLS,数组应在初始化后立即用零填充。但是,我面临的情况并非如此。这种行为首先在JDK 7u4中发生,并且在以后的所有更新中也发生(我使用64位实现)。以下代码引发异常: 该异常在JVM执行代码块的编译之后发生,并且不会出现带有标志的异常。此外,该语句(与该代码中的所有其他语句一样)是必需的,并且如果不存在该异常,则不会发生。显然,此可能的错误与JVM优化有关。对于这种行为有什么想