什么是C语言中的void指针?
它是一个指针,可以保存任何数据类型变量的地址(或可以指向任何数据类型变量的地址)。
宣言
void指针的声明如下-
void *pointername;
例如:
void *vp;
访问-类型转换运算符用于通过变量的指针访问变量的值。
语法
下面给出了void指针的语法-
* ( (type cast) void pointer)
示例
int i=10; void *vp; vp = &i; printf (“%d”, * ((int*) vp)); // int * type cast
例子1
以下是void指针的C程序-
#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 = 10f = 5.340000
例子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\n", i, *( (int *)vp + i ) );
}
return 0;
}输出结果执行以上程序后,将产生以下结果-
array[0] = 12 array[1] = 19 array[2] = 25 array[3] = 34 array[4] = 46