我对取消引用 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
不够吗?
谢谢