我肯定有一个非常简单的答案,也许我只是健忘,但我不记得如何使用一个变量来定义另一个变量的名称。 我甚至想不出这个进程的名称来搜索现有的答案。
我有一个变量: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++中是做不到的。
但是,每当您将变量命名为x1
,x2
,...xn
时,这些变量实际上希望成为数组的成员。 如果使用2D阵列,则开关将变得简单:
x = VarB[VarA];
(顺便说一下,x=varb1[]
看起来不像是有效的语法,在不知道varb
和vara
实际上是什么的情况下,我无法告诉您上述内容是否正确。)