int main(){ //例1:将普通指针变量赋值给void*指针并打印输出 int pa = 100; int *p = &pa; void * v = p; printf("v=%d \n",*((int*)v)); //例2:通过void*指针修改变量的值 float f = 3.14f; void *v2 = &f; printf("f=%.2f,v2=%.2f\n",f,*((float*)v2));//输出f=3.1...
void*指针只支持几种有限的操作:与另一个指针进行比较;向函数传递void指针或从函数返回void*指针;给另一个void*指针赋值。不允许使用void*指针操作它所指向的对象,例如,不允许对void*指针进行解引用。不允许对void*指针进行算术操作。 GNU C: GNU C指定void*指针的算术操作与char*一致。 void*表示“任意类型的指...
void*可以指向任何类型的地址,但是带类型的指针不能指向void*的地址 void*指针只有强制类型转换以后才可以正常取值 void*指针变量和普通指针一样可以通过等于0或者NULL来初始化,表示一个空指针 当void*指针作为函数的输入和输出时,表示可以接受任意类型的输入指针和输出任意类型的指针 #include "stdio.h" void *test(...
1. 基本用法 void* 指针可以指向任何类型的数据,但在使用时需要进行适当的类型转换。以下是一个简单的例子: #include <stdio.h> int main() { int num = 42; void *ptr = # printf("Value: %d\n", *(int*)ptr); return 0; } Output: Value: 42 在这个例子中,我们将一个整数的地址赋值给 void...
1.1 void指针初探 void *表示一个“不知道类型”的指针,也就不知道从这个指针地址开始多少字节为一个数据。和用int表示指针异曲同工,只是更明确是“指针”。 因此void *只能表示一个地址,不能用来&取值,也不能++和--移动指针,因此不知道多少字节是一个数据单位。
使用void*指针时,通常需要在后续的操作中进行类型转换。例如: c int *intPtr = (int *)malloc(sizeof(int)); 这里,malloc函数返回一个void*类型的指针,它被强制转换为int*类型,以便指向一个整数。 关于void在C语言中的更多详细信息和用法,你可以参考以下资料: C语言资料1 C语言资料2 这些资料提供了更...
void即“无类型”,void *则为“无类型指针”,可以指向任何数据类型。 1 .void的作用 1) 对函数返回的限定 a) 当函数不需要返回值时,必须使用void限定。例如: void func(int, int) 2) 对函数参数的限定 a) 当函数不允许接受参数时,必须使用void限定。例如: int func(void) ...
(void*)类型指针:ANSI新增的:即定义了一个指针,但不指定指向任何类型(即指向抽象的数据类型)。void是空类型,只保存了指针的值,而丢失了类型信息 1 通过强制类型转换可将其值赋给另一指针变量 2.1用于动态存储函数的返回型指针 void malloc/calloc() 2.2也可用于函数