首页 >> 学识问答 >

void指针函数(void指针)

2022-09-09 21:05:07

问题描述:

void指针函数(void指针),跪求好心人,帮我度过难关!

最佳答案

推荐答案

2022-09-09 21:05:07

大家好,小鑫来为大家解答以上的问题。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*,这样便于转换,可以指向任何类型的指针。

本文到此分享完毕,希望对大家有所帮助。

  免责声明:本答案或内容为用户上传,不代表本网观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。 如遇侵权请及时联系本站删除。

 
分享:
最新文章