What is Pointer?
Pointer is a variable storing memory address of data stored in
computer’s memory. Normally, a variable stores numeric, alphanumeric values of
object but pointers stores the memory address of variable’s values stored in
Assigning and retrieving variable memory address.
Before assigning a pointer we need to declare a pointer. To
declare a pointer we need to use ‘*’ before a variable name of a pointer (Eg. int *i;). We can declare pointer of any
data type as well as self created data types (eg. class). To assign a memory
address to a pointer we use ‘&’ sing after the assignment operator (eg. i=&a;). While assigning a
memory address to a pointer we need to keep in mind that data type of a
variable whose memory address is to be assigned to a pointer should be same as
the pointer data type. But void type pointer can handle different types of
variables it points to.
To retrieve value from a pointer we use ‘*’ sign with pointer
variable name (eg. cout<<*i;). To print the address pointer pointing
to we simply write the pointer variable (eg. cout<<i;).
Pointer and Array
Basically array name is a pointer to its first element.
Eg. arr is
a array is 10 elements (int arr;) then arr is a
pointer to its first element i.e. arr. To access the values of
array we can also use pointers.
In the code above i++
will increment the memory address by one unit according to the allocation size
of the data type, here it will increment by 2. And cout<<*i; will display the value stored
in the array.
Dynamically Allocating and Deallocating memory
new operator is used to
allocate memory dynamically during the runtime. Return value of new operator is
pointer; therefore it should only be assigned to a pointer.
p = new int;
Once the use of the allocated memory is finished we need to deallocate the
memory with delete operator