Which of the following is the correct output for the program given below?
===

     line1:  #include<stdio.h>
     line2:  {
     line3:  int arr[3]={2,3,4};
     line4:  char *p;
     line5:  p=(char*)arr;
     line6:  printf("%d",*p);
     line7:  p=p+1;
     line8:  printf("%d\n",*p);
     line9:  return 0;
             }

  (A) 2 3

  (B) 2 0

  (C) 1 0

  (D) garbage value

one thing that bothering me the casting of the integer pointer to an character pointer.

(a)-**How important the casting is ?**

(b)-**and what the compilar would do in line number5?**

(c)- **and after line number 5  whats going on line number7?**

(d)-**and if the output is 2 0 then how the 0 is being printed by the compilar?**
