
Here, pointer $\texttt{p}$ points to $\texttt{x}$.
So, every change made using $\texttt{*p}$ directly changes the original variable $\texttt{x}$.
Initially, $\texttt{x = 1}$.
The call is $\texttt{update(5, \&x)}$.
In $\texttt{update(5)}$:
$\texttt{*p = *p + 5}$
So, $\texttt{x = 1 + 5 = 6}$
Then it calls $\texttt{update(3, p)}$.
In $\texttt{update(3)}$:
$\texttt{*p = *p + 3}$
So, $\texttt{x = 6 + 3 = 9}$
Then it calls $\texttt{update(1, p)}$.
In $\texttt{update(1)}$:
$\texttt{*p = *p + 1}$
So, $\texttt{x = 9 + 1 = 10}$
Then it calls $\texttt{update(-1, p)}$.
Since $\texttt{n <= 0}$, it returns immediately.
Now returning starts.
Back in $\texttt{update(1)}$:
$\texttt{*p = *p + 1}$
So, $\texttt{x = 10 + 1 = 11}$
Back in $\texttt{update(3)}$:
$\texttt{*p = *p + 3}$
So, $\texttt{x = 11 + 3 = 14}$
Back in $\texttt{update(5)}$:
$\texttt{*p = *p + 5}$
So, $\texttt{x = 14 + 5 = 19}$
$\therefore$ Output : $\boxed{19}$