int main()
{
int a;
void *p;
p = &a;
printf("%ld\n",(long)p);
p = p+1;
printf("%ld\n",(long)p);
}
このプログラムでp+1
は、pの値を1だけインクリメントしています。void pointer arithmetic
では不可能であることがわかっているC
のでGCC
、暗黙的に実行しています。もしそうなら、それはそれをとして取っていchar pointer
ますか?dereferencing
また、暗黙的にポインタ演算を行っている場合、voidポインタが不可能なのはなぜですか。