Как происходит арифметика пустых указателей в GCC

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

В этой программеp+1 просто увеличивает значение р на 1. Я знаю,void pointer arithmetic невозможно вC, такGCC делает это неявно. И если да, то принимает ли это какchar pointer, Кроме того, почемуdereferencing невозможно для пустого указателя, если он неявно выполняет арифметику указателя.

Ответы на вопрос(1)

Ваш ответ на вопрос