void指针和NULL指针有什么区别?

San*_*jay 7 c c++

可能重复:
空指针和void指针之间有什么区别?

指向void的指针和C中的NULL指针有什么区别?或者他们是一样的吗?

Pab*_*ruz 13

Ç,有void,void指针和NULL指针.

  1. void不存在的类型.IE返回一个void类型的函数是一个什么都不返回的函数.
  2. void pointer:是一个指向内存位置的指针,其类型可以是任何类型:结构,int,浮点数,您可以命名它.
  3. 一个NULL指针的指针位置0x00,就是没有位置.什么也没说.

例子:

void 功能:

void printHello()
{
   printf("Hello");
}
Run Code Online (Sandbox Code Playgroud)

void 指针:

void *malloc(size_t si)
{
    // malloc is a function that could return a pointer to anything
}
Run Code Online (Sandbox Code Playgroud)

NULL 指针:

char *s = NULL;
// s pointer points to nowhere (nothing)
Run Code Online (Sandbox Code Playgroud)


Ale*_*rty 7

void是一种数据类型.void*只是指向未定义类型的指针.A void*可以设置为任何内存位置.NULL指针是任何设置为NULL(0)的指针.

所以是的,它们是不同的,因为void指针是一种数据类型,而NULL指针指的是任何设置为NULL的指针.


win*_*aed 5

指向void的指针是指向未指定类型的指针.IE浏览器.只是一个指针.它仍然可以是一个有效的指针,但我们不知道它指向的是什么(例如,一个函数可能将一个void指针作为参数,然后根据不同的参数解释该类型)

NULL是一个'空'指针.无效,可用于指定指向无/未设置的指针.它是一个值,而void是一种类型.