Adt lab/pointers
- This is part of adt lab.
Pointers
In C/C++, there is a special kind of types: pointers. Pointer variables keep locations in the memory. To declare a pointer variable, we use symbol *:
type* variable;
For example, the following code declares p as a pointer to an integer.
int* p;
To see how pointers work, let's follow this code.
int a = 10;
int b = 20;
p = &a;
cout << (*p) << endl;
*p = 100;
cout << a << endl;
a++;
cout << (*p) << endl;
p = &b;
a = *p;
cout << a << endl;
Let's look at each step.
p = &a; // step 1
To obtain a location of any variable, we use operator & (called a reference operator). After step 1, p keeps the location of a.
*p = 100; // step 2
To dereference a pointer variable, we use operator *. Therefore *p refers to the "data" at the location that p points to. After step 2, *p (which is essentially a) becomes 100.
a++; // step 3
As p points to a's location, if we change the value of a, *p also changes (because it is the "same" piece of data).
p = &b; // step 4
a = *p;
We can change p to point to other places.