vault backup: 2022-08-08 11:21:12

This commit is contained in:
Jet Hughes 2022-08-08 11:21:12 +12:00
parent 309a6dfede
commit e40090ed64

View File

@ -5,7 +5,7 @@ tags:
- cosc204 - cosc204
--- ---
# Variables # Variables and Pointers
``` ```
va memory[3] va memory[3]
@ -16,5 +16,22 @@ va memory[3]
`*` is known as **dereferncing** `*` is known as **dereferncing**
`**` is known as **double-dereferncing** `**` is known as **double-dereferncing**
## Names and places
names are allocated to emmory locations of declaration
`&b;` wherever in memory b is stored
## Why Pointers
- abstractions
- dont need to know which "object" to manipulate
- ability to change a parameter
- multiple return values from a routine
- efficiency
- dont need to copy anything to pass a pointer
## Call by value
- The value of the variable is passed to the called routine.
- changes to the parameter do not propogate to the caller
## Call by address
- address of parameter is passed to the rountine