I am learning C programming language, I have just started learning **arrays with pointers**. I have problem in this question, I hope the that output must be **`5`** but it is **`2`**, Can anyone please explain why?

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

```