Логика функции работает следующим образом: если x
больше 5, функция будет вызываться снова с x
, уменьшенным на 1.
В следующей строке:
func(--x);
--x
означает, что x
будет уменьшено на 1 до выполнения этой строки кода, отличающейся от x--
, что означает, что x
будет уменьшено после строки,Когда x
будет равно 5, оно будет напечатано, а затем функция вернется в последнее место, откуда она была вызвана, и продолжит оттуда, означая, что x
будет напечатано снова со значением, которое было в последнем вызове, затем вернитесь снова и т. д. и т. д.
Таким образом, функция в основном напечатает все числа от 5 до заданного числа (если оно больше 5, конечно), за исключением заданного числа, так как x был уменьшенперед печатью.
В вашем случае вызов func(10)
приведет к следующему выводу:
56789