本篇文章我们来介绍一下C++ “万能血” void指针
为什么说他万能呢?
原因:
C++ void*
是一种特殊的指针类型,可用于存放任意对象的地址。在函数传参中也可以作为任何实参的形参
void型详细介绍
void*
是C++中的一种特殊的指针类型,被称为"无类型指针"。它可以指向任意类型的数据,但在没有进行类型转换之前,不能直接对其进行解引用操作。由于
void*
是一个无类型指针,因此它可以用来实现泛型编程或处理未知数据类型的情况。例如,在某些情况下,需要将指针作为参数传递给函数,并且不确定具体的数据类型时,可以使用void*
类型。然而,由于
void*
是无类型指针,所以在使用它时需要注意类型安全性。如果要在void*
指针上执行操作或访问其内容,必须先将其转换回原始类型。
下面我们来看一下代码实例:
int number = 42;
void* ptr = &number; // 将 int 类型的指针赋值给 void*
int* intPtr = static_cast<int*>(ptr); // 将 void* 转换回 int*
std::cout << *intPtr << std::endl; // 解引用 void* 转换后的指针
注意要进行类型转换