I know that you know but to clarify a bit to @badrequest
When you call a function, the arguments are copied on the so-called stack. The function will use those copies and wil modify those copies, not the originals. When the function ends, the copies of the arguments are removed from the stack.