gpt4 book ai didi

c - 将数组中的未知值分配给变量

转载 作者:太空宇宙 更新时间:2023-11-04 06:08:39 25 4
gpt4 key购买 nike

好的,我有一个包含 9 个整数的数组。有些值是给定的,有些是未知的。我如何将整数变量(例如“a”-“z”)分配给这些未知值?例如:

index [0] is unknown 
index [1] is 27
index [2] is 6
index [3] is 9
index [4] is unknown
index [5] is 21
index [6] is 24
index [7] is 3
index [8] is unknown

我要

index [0] is a
index [1] is 27
index [2] is 6
index [3] is 9
index [4] is b
index [5] is 21
index [6] is 24
index [7] is 3
index [8] is c






for (ii=0; ii<MAXLINE/2; ii++)
{
if (uniqueNumbers[ii] == UNKNOWN_INPUT)
{

printf("UNKOWN_INPUT at [%d]\n", ii);
}
}

最佳答案

这是一个很好的问题。实际上在 C 中没有直接的方法可以做到这一点,因为类型系统虽然很弱,但确实会强制您为每个变量选择一个类型,这意味着如果没有一些额外的结构,您将无法让数组元素成为一个 int 或对变量的引用。

实现此目的的一种方法是让每个数组元素都是标记 union ,例如这个:

typedef struct {
enum { Constant, Variable } type;
union {
int value; // If this is a constant
int* ref; // If this is a reference to a variable
} value;
} Expression;

现在,您的数组元素可以是常量(其中设置了值字段)或变量,在这种情况下,ref 字段将是指向保存值的实际变量的指针。

如果这不是您想要的,您可以轻松地进行修改。如果你想存储符号引用而不是硬引用(例如,要存储一个条目是“变量 X”而不是“指向其他值的指针”),你可以添加另一个枚举常量和一个保存名称的字段变量。

关于c - 将数组中的未知值分配给变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4950744/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com