请教 void 类型指针的使用问题。
书上说,void类型的指针可以指向任何类型的变量,但是具体如何使用呢?
#include <iostream>
using namespace std;int main()
{
void * p1;
int a;
double b; a=10;
b=99.99; *p1=a; //这句为何报错,void型指针可以指向任何地方呀? cout << *p1 << endl;
return 0;
}

解决方案 »

  1.   

    你理解错了,任何指针都可以转成void *,再转回来不丢失信息,你声明的就是个野指针。
      

  2.   

    void*的一个典型例子,memcpy等内存操作时,不管是int *, char *, unsigned char *都可以直接传
      

  3.   

    #include "stdafx.h"
    #include <iostream>
    using namespace std;int main()
    {
    void* p1 = NULL;
    int a;
    double b; a = 10;
    b = 99.99; p1 = &a; // P1 指向a
    int* ar = (int*)p1; // 转换为int*指针
    cout << *ar << endl; p1 = &b;
    double* br = (double*)p1;
    cout << *br << endl; system("pause"); return 0;
    }