C语言中的void指针是什么?
它是一个可以保存任何数据类型变量(或)指向任何数据类型变量的地址的指针。
声明
void指针的声明如下所示 −
void *pointername;
例如 − void *vp;
访问 − 使用类型转换运算符通过指针访问变量的值。
语法
void指针的语法如下所示 −
* ( (type cast) void pointer)
示例 1
int i=10; void *vp; vp = &i; printf ("%d", * ((int*) vp)); // int * type cast
示例
以下是用C语言编写的void指针程序 −
#include<stdio.h> main ( ){ int i =10; float f = 5.34; void *vp; vp = &i; printf ("i = %d", * ((int*)vp)); vp = &f; printf ( "f = %f", * ((float*) vp)); }
输出
执行上述程序时,会产生以下结果 −
i = 10 f = 5.34
示例 2
下面给出在void指针中进行指针算术的C语言程序 −
#include<stdio.h> #define MAX 20 int main(){ int array[5] = {12, 19, 25, 34, 46}, i; void *vp = array; for(i = 0; i < 5; i++){ printf("array[%d] = %d
", i, *( (int *)vp + i ) ); } return 0; }
输出
执行上述程序时,会产生以下结果 −
array[0] = 12 array[1] = 19 array[2] = 25 array[3] = 34 array[4] = 46
广告