Cómo está ocurriendo la aritmética de punteros en vacío en GCC

int main()  
{  
    int a;  
    void *p;  
    p = &a;  
    printf("%ld\n",(long)p);  
    p = p+1;  
    printf("%ld\n",(long)p);  
}  

En este programa,p+1 solo está incrementando el valor de p por 1. Lo sévoid pointer arithmetic no es posible enC, asi queGCC lo está haciendo implícitamente Y si es así, entonces lo está tomando comochar pointer. Tambien por quedereferencing no es posible para el puntero de vacío, si está haciendo aritmética de puntero implícitamente.

Respuestas a la pregunta(1)

Su respuesta a la pregunta