我是老温,一名热爱学习的嵌入式工程师
关注我,一起变得更加优秀!1 不能动的“地址”之 void指针1.1 void指针初探void *表示一个“不知道类型”的指针,也就不知道从这个指针地址开始多少字节为一个数据。和用int表示指针异曲同工,只是更明确是“指针”。
因此void *只能表示一个地址,不能用来&取值,也不能++和--移动指针,因此不知道多少字节是一个数据单位。 int nums[] = {3,5,6,7,9};
void* ptr1 = nums;
//int i = *ptr1; // 对于void指针没法直接取值
int* ptr2 = (int*)nums;
printf("%d,%d
",ptr1,ptr2);
int i = *ptr2;
printf("%d
",i);
从输出结果可以看出,无论是无类型的void指针还是int类型指针,指向的地址都是一样的: |