1.void指针可以指向任意数据类型,即任意数据类型的指针都可以赋值给void指针;void要转换为其他类型的指针的话就要进行强制转换,并且这个转换过程是很容易出现问题的,要谨慎使用;
2.void指针是不可以间接引用的,下来代码不能通过编译:
#include <iostream>
using namespace std;
void main()
{
int value = 10;
void *p = & value;
int *ip = (int*)p;
cout << *p << endl;
}
从第一点可以知道void可以指向任意数据类型,那么编译器单纯的根据void这个信息是没有办法确定这个指针到底指向了多少内存空间的,所以也就不能进行*p输出了。
3.void设计的初衷是给函数使用的,函数无返回值则使用void,函数的参数可以是任意数据类型的话,则使用void。
4.不能用void去定义变量,即代码
void v;
是非法的。