Aggregates (arrays and structs) and functions. How can you use functions to process arrays and structs ? Facts: 1) when you pass an array to a function, the function receives a reference to that array and therefore is able to modify the array directly (analogy: manicurist vs house painter) 2) The name of an array is equal to the address in memory of the start of that array 3) When you pass a struct to a function, the function receives a copy of that struct and therefore any changes the function makes do not affect the original struct. 4) Almost nobody passes structs by value Almost always we pass the address of a struct to a function