hey everyone can please someone tell me why this C function that i wrote is not tail recursive??

and how would it look like if it was tail recursive...

also.. is it possible to use a goto function here? if so.. how?

thank you

Code:
int SP(int a[], int i, int n) {
return (i >= n) ? 1 : a[i] * SP(a, i + 1, n);
}