C ポインタの逆参照については疑問があります。次のコードがあるとします。
void *vptr; // declare as a void pointer type
int val = 1;
int *iptr;
// void type can hold any pointer type or reference
iptr = &val;
vptr = iptr;
printf("iptr=%p, vptr=%p\n", (void *)iptr, (void *)vptr);
を実行する(void *)iptr
と、実際に何を印刷するのでしょうか? 逆参照すると数字の1が出力されるはずだと思っていたのですが、実際には住所が出力されます。何故ですか?(void *)
また、住所を印刷するために前に追加する必要があるのはなぜですか? iptr
十分ではないでしょうか?
ありがとう