Read the opening of chapter 8 and sections 8.1 - 8.3 in Scott.
The video below generally clarifies some things, but I would quibble with the speaker's description, around 3:47, that "we're making a copy of the array". It's more accurate to say that we're making a copy of the pointer to the array, that is, producing a second pointer to the same array.
A student points out:
At 4:03, he says, "So this is why it looks like complex objects are passed by reference. The complex objects themselves are being copied, but the internal references are being retained."
This is misleading. It is only the reference that is being copied. If you want to copy an object, you must do so explicitly.
(I should find another video.)
Quiz.