Yes you are right !

When you use pointer, copies are still passed to the function. But this time the copies are of the addresses, not of the variables themselves. What you do is you use the address to access the original variable in the memory and operate on them.