Introduction To Pointers

The most excruciating pain is delivered when we finally work with POINTERS. Learning POINTER brings us closer to the point where Dennis Ritchie directly/indirectly gave rise to OOP referencing method knowingly/unknowingly.

Let’s understand the trickiest and the most important concept of C     Programming.    à

                                                        à  Pointers   ß

Definition:--  Pointer is a special data type which is derived from basic data        
·        It is called a derived data type.
·        It takes the values from 0 to 65535 on 64K RAM.
·        It’s associated with the following three concepts as shown below.
·        Pointer stores memory address of other variables i:e a reference

Pointer Concept

1.     Pointer Constants 

·        The memory addresses are known as Pointer Constants.
·        These cannot be changed but can only be used to store data values.

 2.   Pointer Values

·                Memory addresses assigned to variables by the system are called Pointer Values.

3.    Pointers Variables

·        A variable that holds address of another variable is known as Pointer Variable.

  In order to understand the above 3 important concepts related to pointers. Let’s see the syntax and how to use pointers.

               à  Syntax  ß
Declaration and Definition:

initialization of pointers

Note: The position of * between type and identifier is immaterial.

               Eg:-     int      *p
                           Int   *   p
                           int *     p
          All the declarations are just alike…

                                  à Accessing Variables through Pointers ß
These are the steps to be followed to access a variable through Pointers.
Logical Representation in Memory will be :à
Memory representation of Pointer

                                      à  Advantages and Disadvantages ß

Advantages: -

·                     Pointers provide direct access to memory
·                     Pointers provide a way to return more than one value to the functions
·                     Reduces the storage space and complexity of the program
·                     Reduces the execution time of the program 


·                     Uninitialized pointers might cause segmentation fault.
·                     Dynamically allocated block needs to be freed explicitly. When not freed causes memory leak.
·                     Pointers are slower than normal variables.
·                     Hard to debug.


·                     Pointers allows us to perform dynamic memory allocation and deallocation.
·                     Pointers helps us to build complex data structures like linked list, stack, queues, trees, graphs etc.
·                     Helps in Call By Reference method of calling in C.

Will be posting more ……….

Keep Smiling and don't forget to contact me for further assistance. Your Friendly Coder. SPrince