#PLAY CLAW 5 WHAT DOES DRAW CURSOR MEAN HOW TO#
A bit later, we will see how to declare and use pointers.Īs just seen, a variable which stores the address of another variable is called a pointer. Pointers are a very powerful feature of the language that has many uses in lower level programming. The variable that stores the address of another variable (like foo in the previous example) is what in C++ is called a pointer. The main difference between the second and third statements is the appearance of the address-of operator ( &). This is a standard assignment operation, as already done many times in earlier chapters. The second statement assigns foo the address of myvar, which we have assumed to be 1776.įinally, the third statement, assigns the value contained in myvar to bar. The values contained in each variable after the execution of this are shown in the following diagram:įirst, we have assigned the value 25 to myvar (a variable whose address in memory we assumed to be 1776). The address of a variable can be obtained by preceding the name of a variable with an ampersand sign ( &), known as address-of operator. However, it may be useful for a program to be able to obtain the address of a variable during runtime in order to access data cells that are at a certain position relative to it. Fortunately, that task is left to the environment where the program is run - generally, an operating system that decides the particular memory locations on runtime. Generally, C++ programs do not actively decide the exact memory addresses where its variables are stored. When a variable is declared, the memory needed to store its value is assigned a specific location in memory (its memory address). For example, the memory cell with the address 1776 always follows immediately after the cell with address 1775 and precedes the one with 1777, and is exactly one thousand cells after 776 and exactly one thousand cells before 2776. This way, each cell can be easily located in the memory by means of its unique address. These single-byte memory cells are ordered in a way that allows data representations larger than one byte to occupy memory cells that have consecutive addresses. This way, the program does not need to care about the physical address of the data in memory it simply uses the identifier whenever it needs to refer to the variable.įor a C++ program, the memory of a computer is like a succession of memory cells, each one byte in size, and each with a unique address. In earlier chapters, variables have been explained as locations in the computer's memory which can be accessed by their identifier (their name).