c++ void 和 return

void和return的区别在于一个有返回值一个则没有,这格返回值是针对主函数来说的。但是我们又知道只要有在void(intparam)的int和param之间加一个&那... void 和 return的区别在于一个有返回值一个则没有,这格返回值是针对主函数来说的。但是我们又知道只要有在void(int param)的int 和 param 之间加一个& 那个参数也会随之改变比如此函数
void swap(int& num1,int &num2);
int main()
{int a=1;int b=2;
swap(a,b);
cout<<a<<" "<<b;
return0;}
void swap(int num1,int num2)
{int temp=num1;num1=num2; num2=temp;}最后主函数里的值也变了,那样这个void函数有何return有何区别呢????另外子函数里也仍然可以引用任意子函数吗?还是只能引用void 的子函数?被引用的子函数和引用函数的子函数有什么顺序要求吗?
展开
 我来答
White_MouseYBZ
2014-04-07 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6657万
展开全部
  1. 函数的&形参,是C++特有的“引用变量”(C没有)。引用变量是另一变量的别名,通过引用变量可以直接操作与其对应的“真名”变量,所以引用形参的函数在函数中对“引用”的操作实质上是对原变量的操作,因此这种操作会永久生效。第二个函数void swap(int num1,int num2)中的交换操作达不到前者的效果,因为这个函数的形参是“传值”操作,即调用时只是把1和2对应传给了num1和num2,swap中操作的是num1和num2,与a和b无关。

  2. C++和C一样,以函数作为基本运作单位,所以函数的调用没有限制,只要主调函数“知道”有这个被调用的函数就OK了,原则上可以任意深度嵌套调用,也没有顺序规定。所谓“知道”就是函数声明必须在调用之前完成。

松甜恬0Je4ba
2014-04-07 · TA获得超过2.6万个赞
知道大有可为答主
回答量:7475
采纳率:100%
帮助的人:3451万
展开全部
void 和 return的区别在于一个有返回值一个则没有,这格返回值是针对主函数来说的。

这句话从那里得出的结论呢?? void和return之间没有什么区别吧,本来就是两个独立的东西?
即使一个函数是void,也可以 return; 啊,只是后面没有什么内容吧了。

为什么只针对主函数呢?函数返回类型和return是所有函数都这样啊?主函数的特殊之处是该程序的入口和出口,其他和普通函数没有什么区别啊?

另外,参数是参数,返回值是返回值,为什么硬要往一起靠呢?两者本来就是独立的,还要理解什么区别呢?
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友e608075
2014-04-07 · TA获得超过243个赞
知道小有建树答主
回答量:302
采纳率:57%
帮助的人:135万
展开全部
我想说的是你说的真的好乱,void是类型说明符,return是控制流,怎么能拿来比较呢,把函数的返回值说明成void表示他不用返回一个确切的值给调用点,return是用来返回一个值给调用点的,前提是函数的返回类型不是void,另外你上面那个代码应该会出现编译错误,原因是你的函数声明和定义不一样,结果错误应该是未找到匹配的函数,解决的结果是把函数定义的形参也改为引用类型。函数可以调用任何返回值的函数(包括它自己),构成递归调用,前提是你有办法控制它在某个条件时停止调用。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友e43033c
2014-04-07 · TA获得超过1130个赞
知道小有建树答主
回答量:933
采纳率:100%
帮助的人:937万
展开全部
嗯,你出现的问题是对概念的理解混了。
引用是表示,对于形参的操作,就是相当于对形参操作,不用申请临时变量空间,是c++的特点,c没有。
void函数和return没有什么区别,就是你想通过函数返回值的方式返回函数执行的结果,或者函数执行过程是否正确的标志时,需要设定一个其它类型变量或者bool变量(表示函数执行是否正确)。
函数只能够用调用,你所说的子函数引用任意子函数这种说法也是不准确的。
无论函数有无返回值,都是可以被调用的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
愉锋n
2014-04-07 · TA获得超过362个赞
知道小有建树答主
回答量:274
采纳率:50%
帮助的人:225万
展开全部
void作为函数类型的时候,表示的是该函数没有返回值,定义该类函数时,可以没有return语句,也可以return ;return后不带值。
函数的形参int &a,表示的是C++中的一直参数传递方式,引用。
引用,就是执行该函数时,不会创建一个变量,把实参的值拿来初始化它(这是普通值传递的方式),而是这里看到的变量a,其实就是那个实参本身,函数改变了a的值,那么实参变量的值就也被改了。

这是两码事。一个讲的是函数的返回值,一个讲的是参数的传递方式。

至于,函数返回值和输出形参,他们都能改变main函数中一个变量的值。
不要因为函数的某个形参是输出形参,可以改变实参的值,就把它和函数返回值混为一谈。

简单的函数,返回值可以直接返回结果;
复杂点的函数,返回值用于标志函数执行是否成功,需要的计算结果(可能是多个),由参数来传递。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式