Pointers - Programming

Q1:

What will be the output of the program?
#include<stdio.h>

int main()
{
    int arr[3] = {2, 3, 4};
    char *p;
    p = arr;
    p = (char*)((int*)(p));
    printf("%d, ", *p);
    p = (int*)(p+1);
    printf("%d", *p);
    return 0;
}

A 2, 3

B 2, 0

C 2, Garbage value

D 0, 0

ANS:A - 2, 3

No answer description is available. Let's discuss.