【问题标题】:An array of length 4-20?长度为 4-20 的数组?
【发布时间】:2012-06-25 06:02:54
【问题描述】:

我希望我的数组具有使用简单格式的固定长度。请告诉我这是怎么做到的。

我已经拥有的: arr[100]

伪代码:我想要的: arr[4-20] 或 arr[$min_int THROUGH $max_int]

其他详细信息编辑:int 应在array = (4, 20) 范围内。输入可能包含前导零。我想限制数组的长度(即 9 或 10 个字符)。

【问题讨论】:

  • 你想让 arr[4] 成为数组的第一个元素吗?
  • arr[4-20] 是什么意思?它至少有 4 个项目,不超过 20 个?那你怎么做?它必须以空开头。
  • 没有。我明白你的意思了。我想要一个包含 0-1 个元素的数组:一个有限的 int 或有限的“numeric int”——模仿 int 的字符串。
  • @freefaller 和其他人:简短、优雅、带注释的代码。
  • 定义“优雅”。这在我看来就像 Python,许多人可能认为它比 C 更优雅,但 C 可以以自己的方式优雅。然而,它永远不会是 Python。

标签: c arrays types declaration


【解决方案1】:
#define ARRMINIDX 4
#define ARRMAXIDX 20
int arrmem[ARRMAXIDX+1-ARRMINIDX];
#define arr(x) arrmem[ARRMINIDX+(x)]

// process elements of arr
for( i = ARRMINIDX; i <= ARRMAXIDX; i++ )
    dosomething(arr(i));

OTOH,鉴于您的评论,这根本不是您想要的

我想要一个包含 0-1 个元素的数组:有限的 int 或有限的“数字” int"--模仿int的字符串。

在这种情况下我无法做出正面或反面。你是说你想要一个代表整数的 4-20 个字符的字符串?

【讨论】:

    【解决方案2】:

    数组在 C 中根本不能以这种方式工作。您需要自己实现它,只循环有效索引(并在过程中浪费内存)或使用更适合该工作的数据结构,如地图 (您必须在图书馆中找到或自己编写,因为它在语言中不存在)。

    【讨论】:

    • 艾德,这已经超出了我的想象。谢谢。
    猜你喜欢
    • 2014-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-10
    • 2020-12-07
    • 2014-07-27
    • 1970-01-01
    • 2010-09-22
    相关资源
    最近更新 更多