大家好,小鑫来为大家解答以上的问题。void指针函数,void指针这个很多人还不知道,现在让我们一起来看看吧!
1、void* 表示空指针。
2、空指针不能直接使用,例如,指针的加减法操作(因为不知道类型,无法确定偏移的大小)。
3、某些情况下,不知道指针的类型,先用void*来代替,根据需要再强制转换成需要的指针类型使用。
4、比如malloc函数,它只是申请了一块堆内存,并将首地址返回,但是它根本就不知道调用者会用什么指针来接收这个地址,所以干脆就返回一个指向内存地址的空指针,由用户自己来转换。
5、指针是可以指向任何的类型比如函数void Func(void* p):int *p=malloc(sizeof(int)*3); Func(p);char *p=malloc(sizeof(char )*3); Func(p);struct Test{ int a; int b;}struct Test * test;test.a=100; test.b=200; Func(p);void* 表示空指针。
6、空指针不能直接使用,例如,指针的加减法操作(因为不知道类型,无法确定偏移的大小)。
7、某些情况下,不知道指针的类型,先用void*来代替,根据需要再强制转换成需要的指针类型使用。
8、比如malloc函数,它只是申请了一块堆内存,并将首地址返回,但是它根本就不知道调用者会用什么指针来接收这个地址,所以干脆就返回一个指向内存地址的空指针,由用户自己来转换。
9、指针是可以指向任何的类型比如函数void Func(void* p):int *p=malloc(sizeof(int)*3); Func(p);char *p=malloc(sizeof(char )*3); Func(p);struct Test{ int a; int b;}struct Test * test;test.a=100; test.b=200; Func(p);void*指针可以转换成int*,char * 什么的使用撒,一般在函数返回值时就返回指针的时候用void*,这样便于转换,可以指向任何类型的指针。
本文到此分享完毕,希望对大家有所帮助。