Hello, in this code snippet I am not able to understand line 8 and 10. Here at line 8, char* is getting typecasted as int* then again, getting typecasted as char*. Please explain.
#include<stdio.h>
int main()
{
int arr[3] = {2,3,4};
char *p;
p = arr;
p = (char*)((int*) (p));
printf("%d \n",*p);
p = (int*) (p+1);
printf("%d \n",*p);
}