这个递归函数如何返回正确答案?

noo*_*pso 2 c recursion function definition

我想知道这个函数如何返回 4 这是正确的答案,当它res每次函数调用自己时重置变量。 num = 2367319

int func(int num)
{
    int res = 0;
    if (num > 0)
        res = (num % 10 % 3 == 0 ? 1 : 0) + func(num / 10);

    return res;
}

Run Code Online (Sandbox Code Playgroud)

Cod*_*ice 9

res不是“重置”。而是res为每个递归调用创建一个名为的新局部变量。

我建议你添加一些printf()语句来看看这个函数是如何工作的。