Sizeof matrices y punteros

Aquí está mi código de muestra

#include<stdio.h>
void main()
{
 int arr[]={1,2,3,4,5,6};
 char *ptr,a;
 a='c';
 ptr=&a;
 int *ptr1,a1;
 a1=4;
 ptr1=&a1;
 printf("%d  %d   %d",sizeof(arr), sizeof(ptr1), sizeof(ptr));
}

Ahora, por lo que entiendo, el tamaño de me dirá el tamaño requerido para almacenar la variable, ahora la salida para esta es

24 4 4

¿Por qué es el tamaño dearr=24¿Después de todo, es solo un puntero y debería tener tamaño = 4?

Gracias.

Respuestas a la pregunta(5)

Su respuesta a la pregunta