#include <stdio.h>
#include <string.h>

int main ()
{

   int * p1; /* pointer declaration */
   int * p2; /* pointer declaration */

   int i1 = 10;
   int i2 = 100;
   
   printf("Step 1 : i1 = %d \t i2 = %d\n",i1,i2);

   p1 = &i1;
   *p1 = 5; 

   printf("Step 2 : i1 = %d \t i2 = %d\n",i1,i2);

   p2 = p1;
   *p2 = 50; 

   printf("Step 3 : i1 = %d \t i2 = %d\n",i1,i2);

   p2 = &i2;
   *p2 = *p1; 

   printf("Step 4 : i1 = %d \t i2 = %d\n",i1,i2);

   p1 = NULL; /* p1 is now a NULL poitner */
   // *p1 = 75;               What would this do?

}
