菜鸟问题 无返回值void 和返回值的区别

afafafafafafa 2010-04-30 10:16:19
有返回值的 最终都要return 没有的就不需要了 我不清楚 这个return 返回的是什么值 无返回值值都不返回 为什么还要用
而且他们 无返回值 是通过参数传递值吗
本人初学 请各位大侠不要见怪 给予指导
谢谢
...全文
6496 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
afafafafafafa 2010-04-30
  • 打赏
  • 举报
回复
真的很详细 very谢谢
蒙飞鸿 2010-04-30
  • 打赏
  • 举报
回复
如果需要返回值给调用者,也就是函数在定义时是非VOID类型的,那么就必须有RETURN语句来返回值否则不能通过编译。
如果函数定义时是VOID类型,就表示不需要返回数据给调用者,那么里面就可以没有RETURN,如果有的话,也是结束函数返回(这个返回是程序执行回到调用者那,而不是把某值“返回”给调用者),也就是结束函数了。
让你疑惑的是这里应该有两个意思的返回,一个是指程序执行流程的返回,一个是指数据返回给调用者。RETURN可以有这两个意思。
xuntaohm 2010-04-30
  • 打赏
  • 举报
回复
如果函数类型是void的话,说明返回值为空。
任何函数都要返回。有的带值返回,有的不带值返回。并不是说void就不返回了。
如果中间不加return的话,那么函数会执行到末尾才返回。
void函数末尾不需要加return,也可以加。但是中途想返回的话,必须用return;
而带返回值的函数在返回时必须加return values; 无论是函数末尾返回还是中途判断返回。
void fun1(int a);//返回时不带值。
{
if(a>=0)
return;//如果a大于0,返回,退出函数,不再执行下面代码了。
else
a++;
printf("%d",a);

return;//这个return通常不需要加,但是加了也不会出错。
}
BOOL fun2(int a);//返回布尔类型的值
{
if(a>=0)
return 1;//如果a大于0,返回,退出函数,不再执行下面代码了。
else
a++;
printf("%d",a);

return 0;//这个return必须要加,而且返回值必须是BOOL类型的
}

说完自己都觉得过于细了
这不是鸭头 2010-04-30
  • 打赏
  • 举报
回复
想有就有,不想有就不用。
不过我一般是有...
洗洗睡去 2010-04-30
  • 打赏
  • 举报
回复
又学到新东西 嘿嘿
kemee 2010-04-30
  • 打赏
  • 举报
回复
就用return

别写return 0,1之类的就和void不冲突 啊
tanwei1002 2010-04-30
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 sunnyloves 的回复:]
对 我是这样用过 可是有return 不是和void矛盾么
[/Quote]

不矛盾啊

void是没有返回值
return; 返回空值,用于某条件下返回
linsj585 2010-04-30
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 sunnyloves 的回复:]
对 我是这样用过 可是有return 不是和void矛盾么
[/Quote]


这时的return可以用来中断,不再执行下面的语句了
洗洗睡去 2010-04-30
  • 打赏
  • 举报
回复
对 我是这样用过 可是有return 不是和void矛盾么
bragi523 2010-04-30
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 sunnyloves 的回复:]
那有时候void返回类型里 为什么会有

C/C++ code
return;

这样的语句呢 在有的环境里会报错 有的不会
[/Quote]
当你运行到中间,想要在某种条件下返回是要return;
洗洗睡去 2010-04-30
  • 打赏
  • 举报
回复
那有时候void返回类型里 为什么会有
return;

这样的语句呢 在有的环境里会报错 有的不会
qingfeng_happy5 2010-04-30
  • 打赏
  • 举报
回复
有的函数只需要你给它传递参数进去,它处理完了就行了,并不需要返回信息给调用者,所以此时,返回类型就可以定义为void。有的函数是需要将处理结果返回给调用者,此时就需要有返回值了,比如说
int Add(int num1,int num2);
bragi523 2010-04-30
  • 打赏
  • 举报
回复
像绕口令


返回值就是你想有就可以有

也可以用指针或者引用参数来代替

16,467

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧