void*与其他常规指针不同,它可以指向任何类型的指针。
void*类型的变量不能直接对其进行任何操作,类似:
void* vptr;
vptr++;//不可以
vptr[i];//不可以
vptr仅仅代表一个指针,如果要对该指针指向的地址进行操作需要加&(不像常规指针名就是首地址);
例如:&vptr 代表该指针指向的首地址,便可对其进行操作,*(&vptr) 即取首地址的值,*(&vptr+1) 即取第二个值;
但(&vptr)[i] 好像还是不行,暂时搞不清为什么。
void*与其他常规指针不同,它可以指向任何类型的指针。
void*类型的变量不能直接对其进行任何操作,类似:
void* vptr;
vptr++;//不可以
vptr[i];//不可以
vptr仅仅代表一个指针,如果要对该指针指向的地址进行操作需要加&(不像常规指针名就是首地址);
例如:&vptr 代表该指针指向的首地址,便可对其进行操作,*(&vptr) 即取首地址的值,*(&vptr+1) 即取第二个值;
但(&vptr)[i] 好像还是不行,暂时搞不清为什么。