Pointers
From ROBOTC API Guide
General Programming → Pointers
|
Pointers
The House Analogy
A good analogy for how pointers operate is how street addresses work. When a house is going to be built, contractors must make sure that the land they are going to build the house on is big enough to contain it. Once the house is built it gets its own street address depending on where it is at on the street. Then, no matter who is living in the house, the street address will remain the same.
Likewise, when a variable is being created in a program, the program must make sure that its memory location is large enough to hold the variable. Once the variable is created it gets its own memory address depending on where in memory it is residing. Then, no matter what value is stored in the variable, the memory address will remain the same. |
Declaring Pointers
int *ptr; |
Creates a pointer named 'ptr' of the integer type. Both the name and the type of variable must be declared, with the name being preceded by an asterisk (*). |
Assigning Pointers
int *ptr; int foo=0; ptr = &foo; | |
Creates a pointer named ptr of the integer type, an integer named foo, and sets the memory address of foo to the pointer ptr (using the ampersand, &). | |
int *prt; int foo=0; ptr = foo; | |
Creates a pointer named ptr of the integer type, an integer named foo, and sets the value stored by foo to the pointer ptr (in this case, 0). This can cause errors if not used correctly and for the most part should be avoided. |