If you are studying C (rather than C++), then there are no references.
The term "pass by reference" in C simply means that you are passing a pointer as the address in which the value will be stored, so that the function can change its value.
Otherwise, you're passing by value which means that a copy of the variable is generated on the stack and modifications have no impact.
In many ways this is similar to what you see in Java, except that in Java you don't have to explicitly turn things into a pointer or dereference them. In other words, when you pass a pointer, the address is copied on the stack, so if your function changes the pointer (rather than the data it points to), the changes disappear when you are done with the function. Similarly, when you pass an object reference in Java, you can change the contents of the object (e.g., by calling functions), but changing the varialbe to point at anothr object will have no effect once you leave.
If you were using C++ (which looks like C), then you can pass by reference, in which case you don't need to deal with pointers, and changes to the variable in the function actually change the external value directly (except that you can't make it point at something else).