Doesn't the stack pointer, among other CPU registers like PC,..reside in CPU?
But if you are asking to which address the stack pointer is pointing at, then is a different story. Don't know about Z80, but usually it points to the top off the available memory e.g. -1 (FFFF) and it decrements, it makes sense since you are loading static variables from bottom to the top , then the CPU can't create a stack and then clear it in the middle of allocated variables or program (von Neuman).
So the only way to make a stack on top of the stack, on top of the stack.... is to store variables from top down, until the stack grows so it "touches" the allocated data on bottom - this is so called stack overflow.
The stacks are built up at every function call and then nested function calls, it is purged in the reverse order.
EDIT:
Swapped bottom and top.
