这是我在教科书中找到的一段代码,用于使用递归来评估前缀表达式。我无法理解这段代码及其经历的过程。
char *a; int i;
int eval()
{ int x = 0;
while (a[i] == ' ') i++;
if (a[i] == '+')
{ i++; return eval() + eval(); }
if (a[i] == '*')
{ i++; return eval() * eval(); }
while ((a[i] >= '0') && (a[i] <= '9'))
x = 10*x + (a[i++] - '0');
return x;
}
我想我主要对 return 语句以及它最终如何导致解决前缀表达式感到困惑。提前致谢!