空类型指针

“空类型指针”一般是指 void* 指针,在C/C++语言中非常常见。

什么是 void* 指针?

void* 是一种 通用指针类型,也叫做“无类型指针”或“空类型指针”,它可以指向任何类型的数据,但不能直接解引用

示例:
int a = 10;
void* p = &a;  // p是void指针,指向int类型数据

// 不能直接 *p,因为它不知道p指向的是什么类型
// 要使用时,需要强制类型转换
printf("%d\n", *(int*)p);

特点:

  • void* 可以存储任何类型数据的地址(int, float, struct等)。
  • 在使用前,必须转换成正确的数据类型指针。
  • 常用于通用函数(比如内存管理函数、回调函数)中。

应用场景:

  1. malloc 函数返回的就是 void* 指针
    int* arr = (int*)malloc(10 * sizeof(int));
    
  2. 回调函数的参数(如在RTOS中任务创建时传递的 void* 参数):
    void task(void* params);  // params可以是任意类型的结构体指针
    

和 NULL 指针的区别:

  • void* 是一个可以指向任意类型的指针。
  • NULL 是一个空地址(0地址)的标记值,表示“什么都不指向”。

如果你在特定语境中看到“空类型指针”,可以告诉我上下文,我可以更精准解释。

你可能感兴趣的:(c#)