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 的子函数?被引用的子函数和引用函数的子函数有什么顺序要求吗? 展开
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 的子函数?被引用的子函数和引用函数的子函数有什么顺序要求吗? 展开
展开全部
函数的&形参,是C++特有的“引用变量”(C没有)。引用变量是另一变量的别名,通过引用变量可以直接操作与其对应的“真名”变量,所以引用形参的函数在函数中对“引用”的操作实质上是对原变量的操作,因此这种操作会永久生效。第二个函数void swap(int num1,int num2)中的交换操作达不到前者的效果,因为这个函数的形参是“传值”操作,即调用时只是把1和2对应传给了num1和num2,swap中操作的是num1和num2,与a和b无关。
C++和C一样,以函数作为基本运作单位,所以函数的调用没有限制,只要主调函数“知道”有这个被调用的函数就OK了,原则上可以任意深度嵌套调用,也没有顺序规定。所谓“知道”就是函数声明必须在调用之前完成。
展开全部
void 和 return的区别在于一个有返回值一个则没有,这格返回值是针对主函数来说的。
这句话从那里得出的结论呢?? void和return之间没有什么区别吧,本来就是两个独立的东西?
即使一个函数是void,也可以 return; 啊,只是后面没有什么内容吧了。
为什么只针对主函数呢?函数返回类型和return是所有函数都这样啊?主函数的特殊之处是该程序的入口和出口,其他和普通函数没有什么区别啊?
另外,参数是参数,返回值是返回值,为什么硬要往一起靠呢?两者本来就是独立的,还要理解什么区别呢?
这句话从那里得出的结论呢?? void和return之间没有什么区别吧,本来就是两个独立的东西?
即使一个函数是void,也可以 return; 啊,只是后面没有什么内容吧了。
为什么只针对主函数呢?函数返回类型和return是所有函数都这样啊?主函数的特殊之处是该程序的入口和出口,其他和普通函数没有什么区别啊?
另外,参数是参数,返回值是返回值,为什么硬要往一起靠呢?两者本来就是独立的,还要理解什么区别呢?
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我想说的是你说的真的好乱,void是类型说明符,return是控制流,怎么能拿来比较呢,把函数的返回值说明成void表示他不用返回一个确切的值给调用点,return是用来返回一个值给调用点的,前提是函数的返回类型不是void,另外你上面那个代码应该会出现编译错误,原因是你的函数声明和定义不一样,结果错误应该是未找到匹配的函数,解决的结果是把函数定义的形参也改为引用类型。函数可以调用任何返回值的函数(包括它自己),构成递归调用,前提是你有办法控制它在某个条件时停止调用。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
嗯,你出现的问题是对概念的理解混了。
引用是表示,对于形参的操作,就是相当于对形参操作,不用申请临时变量空间,是c++的特点,c没有。
void函数和return没有什么区别,就是你想通过函数返回值的方式返回函数执行的结果,或者函数执行过程是否正确的标志时,需要设定一个其它类型变量或者bool变量(表示函数执行是否正确)。
函数只能够用调用,你所说的子函数引用任意子函数这种说法也是不准确的。
无论函数有无返回值,都是可以被调用的。
引用是表示,对于形参的操作,就是相当于对形参操作,不用申请临时变量空间,是c++的特点,c没有。
void函数和return没有什么区别,就是你想通过函数返回值的方式返回函数执行的结果,或者函数执行过程是否正确的标志时,需要设定一个其它类型变量或者bool变量(表示函数执行是否正确)。
函数只能够用调用,你所说的子函数引用任意子函数这种说法也是不准确的。
无论函数有无返回值,都是可以被调用的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
void作为函数类型的时候,表示的是该函数没有返回值,定义该类函数时,可以没有return语句,也可以return ;return后不带值。
函数的形参int &a,表示的是C++中的一直参数传递方式,引用。
引用,就是执行该函数时,不会创建一个变量,把实参的值拿来初始化它(这是普通值传递的方式),而是这里看到的变量a,其实就是那个实参本身,函数改变了a的值,那么实参变量的值就也被改了。
这是两码事。一个讲的是函数的返回值,一个讲的是参数的传递方式。
至于,函数返回值和输出形参,他们都能改变main函数中一个变量的值。
不要因为函数的某个形参是输出形参,可以改变实参的值,就把它和函数返回值混为一谈。
简单的函数,返回值可以直接返回结果;
复杂点的函数,返回值用于标志函数执行是否成功,需要的计算结果(可能是多个),由参数来传递。
函数的形参int &a,表示的是C++中的一直参数传递方式,引用。
引用,就是执行该函数时,不会创建一个变量,把实参的值拿来初始化它(这是普通值传递的方式),而是这里看到的变量a,其实就是那个实参本身,函数改变了a的值,那么实参变量的值就也被改了。
这是两码事。一个讲的是函数的返回值,一个讲的是参数的传递方式。
至于,函数返回值和输出形参,他们都能改变main函数中一个变量的值。
不要因为函数的某个形参是输出形参,可以改变实参的值,就把它和函数返回值混为一谈。
简单的函数,返回值可以直接返回结果;
复杂点的函数,返回值用于标志函数执行是否成功,需要的计算结果(可能是多个),由参数来传递。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询