对于void *,可以转换为任意类型指针,而无需强制转换。
char * 是指向一个字节的指针, 转换成void * 一般用于:希望输出成地址的任何指针变量。
看下面的demo:
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
char *word = "again";
cout<<"Value of word is: "<<word<<endl
<<"Value of static_cast<void*>(word) is:"
<<static_cast<void*>(word)<<endl;
system("pause");
return 0;
}
即用**static_cast<void*>(word)可以把任何数据的地址无损的赋给void,从而完成类型转换。值不会受到任何影响。
运行结果:static_cast<void>(word)是word的地址。