I usually program in java and recently watching some c codes. I came up across this program and I don't know how this pointer thing is working. I know pointer stores the address and all but couldn't make it through the program. Please tell how is the output coming as 8 ?
#include <stdio.h> int fun(int n, int * f_p) { int t, f; if (n <= 1) { *f_p = 1; return 1; } t = fun(n - 1, f_p); f = t + *f_p; *f_p = t; return f; } int main() { int x = 15; printf("%d\n", fun(5, &x)); return 0; }
xvariable at all levels of recursion.