对于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的地址。
博客介绍了C++中void *和char *指针的相关知识。void *可转换为任意类型指针且无需强制转换,char *转换成void *常用于输出地址。还给出demo,展示用static_cast<void*>(word)完成类型转换,且值不受影响。
338

被折叠的 条评论
为什么被折叠?



