【问题标题】:Shorthand way to initialise a 2D/3D array in C?在 C 中初始化 2D/3D 数组的速记方法?
【发布时间】:2015-02-03 12:53:06
【问题描述】:

我想知道是否有类似于以下语法的 C 中初始化 2D 或 3D 数组的速记方法:

int array[1024] = {[0 ... 1023] = 5};

【问题讨论】:

  • 您显然在标题中遗漏了“1D”,这实际上是您发布的代码。不确定“D”与您的问题有什么关系,请考虑一下。
  • 你的例子是一个 gcc 扩展。 在 C 中是什么意思?
  • 那是GCC extension,不是标准的C。
  • @WhozCraig 我在问是否有办法使用 '[first ... last] = value' 语法来初始化多维数组 - 我发布的代码只是使用此语法的示例一个标准数组。谢谢大家纠正我的错误。
  • 不完全重复但回答了问题:stackoverflow.com/questions/21528288/…

标签: c arrays gcc initialization


【解决方案1】:

您使用的初始化不是标准 C,而是 GCC extension (Designated Initializers)

要初始化 3d 数组,请使用:

int array[10][10][10] = {[0 ... 9] [0 ... 9] [0 ... 9] = 42};

Demo.

【讨论】:

    猜你喜欢
    • 2018-04-05
    • 1970-01-01
    • 2011-01-11
    • 2022-07-23
    • 1970-01-01
    • 2022-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多