Section 10.2 References and Functions
We normally donβt use references like was shown in the previous section. Having two names for the same local variable does nothing but cause confusion. Instead, references are used to allow us to share an existing storage location with a new scope instead of making a copy of what is stored.
For example, normally when we pass something to a function, a copy is made of the passed value. The copy is stored into the parameter. Take this example:
This is called pass by value because the parameter
x in add gets a copy of the value of number from main. The memory diagram when we reach line 6 (after calling add from main) would look like:
add and mainx simply holds a copy of the number from main. No matter what we do to x inside add, we canβt change what number holds. However, if we make x a reference, the memory diagram will look like:
add and main where s is a reference.Now
x is a reference to number. This is called pass by reference. It links back to the memory in the main stack frame. If we change x, we change number. Try it out in this sample. The only change we have made is to make chop take a reference to an int: add(int& x).
You have attempted of activities on this page.
