使用变量定义变量名

Using variables to define variable names

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

我有一个变量: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"+[];

要搜索的词是“讨厌的令人费解的宏巫术”。但说真的,不要去那里。变量名称在运行时不存在。你想做的事,C++做不到。

但是,只要您将变量命名为 X1X2、...XN,那么该变量实际上希望成为数组的成员。如果您使用二维数组,那么该开关将变得简单:

x = VarB[VarA];

(顺便说一句,x=VarB1[] 看起来不像是有效的语法,在不知道 VarBVarA 实际上是什么的情况下,我无法告诉你以上是否正确。)