void类型的指针与NLLL指针区别何在呢?
null表示这个指针不指向任何地方。
void也是空的意思,
这二者有何区别呢?如果:
void *p;则意味着什么呢?

解决方案 »

  1.   

    void *p
    该指针可以被强制转化成任何类型 如
    (int*) p;
      

  2.   

    而null表示这个指针不指向任何地方。指针的类型是可以是int* p;
      

  3.   

    NULL 指针是确定类型的,只是指向000000f(好像是这个值)的位置
    void 指针是说这指针可以是任意类型的
    前一个是变量的值,后一个是变量类型你可以写 void *p = NULL;
      

  4.   

    void 类型的指针类型为“void”,可以被强制转换成其他类型,楼上的说了。
    而NULL指针的类型为“空”。举个例子,就好象两个集合的交集为“空”和“没有交集”是不同的概念。
      

  5.   


    同意这个说,void* 就是记录一个内存地址,这种类型的指针只能访问该地址所标示的那一个字节的内存,
    根据这个地址实际标识的内存缓冲区(比如是一个长度为n的字符缓冲区),来强制转换成char*,这样char*就可以访问以该地址为首地址的长度为n的内存区了。
    一般void*用来在函数接口之间传递类型不确定的指针(即传递不同类型的内存数据),具体的转换处理依据程序内部逻辑或约定来进行。
      

  6.   

    根据这个地址实际标识的内存缓冲区来转换成某一类型的指针(比如是一个长度为n的字符缓冲区,就应该转换成char*,这样char*就可以访问以该地址为首地址的长度为n的内存区了)。
      

  7.   

    void*是一种指针类型,而NULL不是指针类型,而是一个指针变量的值,表示这个指针不指向任何内存地址。