首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

关于 void 类型的函数的有关问题

2013-01-28 
请教大家关于 void 类型的函数的问题?1. void 类型的函数需要 return语句吗?我看的是谭浩强 的 c 语言书,

请教大家关于 void 类型的函数的问题?
1. void 类型的函数需要 return语句吗?我看的是谭浩强 的 c 语言书,书上 void 类型函数的函数体内都没有return语句;

2. void 只定义在函数和指针上吗? 数据上不能定义void 吧!

3. void * malloc ()函数 ,干怎么理解这个void ,谭书上说:“这个函数有返回值(地址),只是不指向任何数据”,void 函数 不是没有返回值吗?都搞晕了。

感觉这个void 里面有好多的内容啊!求大神赐教了!  c
[解决办法]
1)可以return,但是不建议多处return,所以有没return也无所谓了。
2)数据不能是void,但可以是void*,无类型的指针。
3)见2。

[解决办法]
void 函数是没有返回值的函数
void *类型的函数 返回值是一个void *类型的地址 也就是空类型的指针
char * p = (char *)malloc(1024);
这里用到了 对返回的void *类型指针强制转换

一般定义函数参数或者返回值定义void *类型 是为了方便统一和使用参数、返回值类型
[解决办法]
1、void返回也可以return的,只要你觉得你的程度逻辑已经可以返回,就可以return

void func{ if(xxx){return;}else{dosomething}}

2、数据是不能为void的,因为不知道给你分多少内存空间,而void×是可以的,它是一个指针大小
3、void*是无类型指针,它表示它指向的地址由申请者判断具体是怎样的一块数据,比如
char *p = (char *)malloc(128)
表示申请了128byte大小的内存并把它当作字符类型

热点排行