这些代码行显示以下错误:
int e = 5, * ePtr = &e;
void * vPtr = ePtr;
cout << *vPtr;
语法错误:
`void*' 不是指向对象的指针类型
我知道:
- 任何指针类型都可以存储为 void 指针类型,无需显式强制转换
- 取消引用 void 指针的尝试是语法错误
但是如果我们不能做到第 2 点,那么第 1 点除了语法正确还有什么用?我想e
使用 .. 打印 5(即此处)vPtr
,这可能吗?
这工作正常:
int e = 5, * ePtr = &e;
void * vPtr = ePtr; //specific to generic Ok!
double * dPtr = (double *)vPtr; //to let compiler know stoarge size
cout << *dPtr; //indirectly it is vPtr i.e. a void ptr, can be deref only if cast