[video](https://www.youtube.com/watch?v=iChalAKXffs) <iframe width="560" height="315" src="https://www.youtube.com/embed/iChalAKXffs" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> <!-- Generated by <a href="https://www.yinote.co/#installation">YiNote</a> --> <!-- # [What Are Pointers? (C++) - YouTube](https://www.youtube.com/) --> <!-- ## [1:17](https://www.youtube.com/?yinotetimestamp=77) --> A pointer is a variable that holds a memory address. <!-- ## [1:42](https://www.youtube.com/?yinotetimestamp=102) --> Address = location in machine's RAM <!-- ## [3:04](https://www.youtube.com/?yinotetimestamp=184) --> Without pointers, we're using "direct address", which turns the variable name into an address in the memory that we can then look up. <!-- ## [4:45](https://www.youtube.com/?yinotetimestamp=285) --> pointer b = &a means that we're taking the address of a and storing that as the value of b. <!-- ## [5:16](https://www.youtube.com/?yinotetimestamp=316) --> int c = *b then means that c will be the value of the address of a, or the value of a. * gets the value. & gets the address. <!-- ## [6:46](https://www.youtube.com/?yinotetimestamp=406) --> We've said "pointer b", but there is often no variable type called pointer. Instead, we should actually use the type of the variable whose address we're pointing to. So instead of `pointer b`, it would be `int* b` or `int *b` to say that we're pointing to the address of a variable whose type is int.