C 语言 void 指针17 Mar 2025 | 4 分钟阅读 到目前为止,我们已经学过,分配给指针的地址应与指针声明中指定的类型相同。例如,如果我们声明一个int指针,那么这个int指针不能指向float变量或其他类型的变量,即它只能指向int类型的变量。为了解决这个问题,我们使用void指针。void指针意味着一个通用指针,可以指向任何数据类型。我们可以将任何数据类型的地址赋给void指针,并且一个void指针可以赋给任何类型的指针,而无需执行任何显式的类型转换。 void指针的语法void指针的声明如下 在上面的声明中,void是指针的类型,'ptr'是指针的名称。 让我们来看一些例子 int i=9; // 整型变量初始化。 int *p; // 整型指针声明。 float *fp; // 浮点型指针声明。 void *ptr; // void指针声明。 p=fp; // 不正确。 fp=&i; // 不正确 ptr=p; // 正确 ptr=fp; // 正确 ptr=&i; // 正确 C语言中void指针的大小C语言中void指针的大小与字符类型指针的大小相同。根据C语言的观念,void指针的表示与字符类型指针的表示是相同的。指针的大小会根据您使用的平台而有所不同。 让我们看下面的例子 输出 ![]() void指针的优点以下是void指针的优点
输出 ![]()
关于void指针的一些要点是
C语言中的void指针不能被直接解引用。让我们看下面的例子。 在上面的代码中,*ptr是一个指向整型变量'a'的void指针。我们已经知道void指针不能被解引用,所以上面的代码会产生编译时错误,因为我们直接打印了指针'ptr'所指向的变量的值。 输出 ![]() 现在,我们重写上面的代码来消除错误。 在上面的代码中,我们通过使用下面的语句将void指针类型转换为整型指针 (int*)ptr; 然后,我们通过使用下面的语句打印void指针'ptr'所指向的变量的值 *(int*)ptr; 输出 ![]()
我们不能直接在C语言中对void指针应用算术运算。我们需要应用适当的类型转换,以便我们可以对void指针执行算术运算。 让我们看下面的例子 上面的代码显示了编译时错误“void表达式的无效使用”,因为我们不能直接对void指针应用算术运算,即ptr=ptr+1。 让我们重写上面的代码来消除错误。 上面的代码成功运行,因为我们对void指针应用了适当的类型转换,即(float*)ptr,然后我们应用了算术运算,即*((float*)ptr+i)。 输出 ![]() 我们为什么使用void指针?我们使用void指针是因为它的可重用性。Void指针可以存储任何类型的对象,我们可以通过使用带有适当类型转换的间接运算符来检索任何类型的对象。 让我们通过一个例子来理解。 输出 ![]() 下一个主题C语言解引用指针 |
C 语言中的常量指针 在 C 语言编程中,常量指针是一种不能改变其指向变量地址的指针,这意味着地址将保持不变。因此,我们可以说,如果一个常量指针指向...
阅读 8 分钟
什么是空指针? 空指针是指不指向任何内存位置的指针。它存储段的基地址。空指针基本上存储 Null 值,而 void 是指针的类型。空指针是...
5 分钟阅读
在 C 语言中,函数指针是指包含函数地址的指针实例,因此函数可以作为参数使用并动态调用。它在回调函数、事件驱动程序和多态性等方法中很有用。正如我们所知,我们...
阅读 10 分钟
在 C 编程中,指针是用于存储另一个变量地址的变量。该变量可以是 int、char、数组、函数或任何其他指针类型。它使我们能够操作存储在特定... 的数据。
阅读 12 分钟
到目前为止,我们已经看到在 C 语言编程中,我们可以将变量作为参数传递给函数。我们不能将函数作为参数传递给另一个函数。但是我们可以通过使用...
阅读 4 分钟
(测验) 1) 在结构中,如果一个变量作为指针工作,那么在下面给出的运算符中,哪个运算符用于使用变量指针访问结构的数据? % -> . # 显示答案 正确选项是 (b)。解释:对于结构,箭头 (->) 用于...
阅读 2 分钟
与指针和内存管理相关的最常见错误是悬空/野指针。有时程序员未能用有效地址初始化指针,那么这种类型的初始化指针在 C 语言中被称为悬空指针。悬空指针发生在...
阅读 4 分钟
C 语言中的指针算术 我们可以在指针上执行算术运算,例如加法、减法等。但是,正如我们所知,指针包含地址,如果另一个操作数是...
阅读 6 分钟
C 语言解引用指针 正如我们已经知道的“什么是指针”,指针是存储另一个变量地址的变量。解引用运算符也称为间接运算符,用 (*) 表示。当间接运算符 (*) 与...
阅读 3 分钟
sizeof() 运算符在 C 语言中常用。它以 char 大小存储单元的数量确定表达式或数据类型的大小。sizeof() 运算符包含一个操作数,可以是表达式或数据类型转换,其中...
7 分钟阅读
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India