0

我确信有一个非常简单的答案,我可能只是健忘,但我不记得如何使用变量来定义另一个变量的名称。我什至想不出这个过程的名称来搜索现有的答案。

我有一个变量:VarA,它将是整数 1、2、3、4 等。

我有另一组数组 VarBn[],其中“n”与 VarA 相关。

所以,当 VarA=1 我想知道 VarB1[],当 VarA=2 ... VarB2[]

我目前有一个非常长且重复的 switch 语句......

switch(VarA)
  case 1: x=VarB1[]; break;
  case 2: x=VarB2[]; break;
  case 3: x=VarB3[]; break;
  case 4: x=VarB4[]; break;

但如果它只是一条线,它的功能会小得多......

x=VarB+"contents of VarA"+[];
4

1 回答 1

3

要搜索的术语是“令人讨厌的复杂宏巫术”。但说真的,不要去那里。变量的名称在运行时不存在。你想做的事不能在 C++ 中完成。

但是,每当您命名 variables X1, X2,...时XN,这些变量实际上都希望成为数组的成员。如果您使用 2D 数组,那么该开关将变得很简单:

x = VarB[VarA];

(顺便说一句x=VarB1[],它看起来不像是有效的语法,我无法告诉你上面的内容是否正确,而不知道VarB实际上VarA是什么。)

于 2020-07-01T12:48:44.690 回答