求解释下面的简单问题

fun(45687,3)不是就执行两次吗,第一次if语句中k-1变成2之后n变成4568,k变成1在进入函数体不执行if语句4568%10不应该是8吗,运行结果y是6


#include<iostream>
using namespace std;
int fun(int n, int k) {
    if (k - 1)  return fun(n / 10, k - 1); 
    else return(n % 10);
}
int main() {
    int x = fun(123, 1);
    int y = fun(45687, 3);
    cout << "x=" << x << endl;
    cout << "y=" << y << endl;
    return 0;
}

你传的是k-1,k本身的值还是3,所以传进去的是2。