Day 5: Pointers
&x evaluates to the adress of x in memory.
*(&x) evaluates to the someting as x.
?
Pointer advantages:
More flexible pass-by-referenceManipulate comlex data structure efficientlyUse polymorphismPointers are variables stroring memory address.
?
Declaring pointers:?
int *ptr = &x;
?
As with any other variable, the value of a pointer is undefined until it is initialized , so it may be invalid.
?
References:
int y;int &x = y;
Reference variable x becomes another name for the value of y in memory.
?
The usage of the * and ?& operators with pointers/references can be confusing. ?The * operator?
is ?used ?in ?two ?di?erent ?ways:?
When ?declaring ?a ?pointer, ?* is ?placed ?before ?the ?variable ?name ?to ?indicate ?that ?the?variable ?being ?declared ?is ?a ?pointer ? ?say, ?a ?pointer ?to ?an ?int or ?char, ?not ?an ?int or?char value.?When ?using ?a ?pointer ?that ?has ?been ?set ?to ?point ?to ?some ?value, ?* is placed before the?pointer ?name ?to ?dereference ?it ? ?to ?access ?or ?set ?the ?value ?it ?points ?to.?A ?similar ?distinction ?exists ?for ?&, ?which ?can ?be ?used ?either?
?to indicate a reference data type (as in ?int &x;), ?or??to take the address of ?a variable (as in ?int *ptr = &x;).?