| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3991 人关注过本帖
标题:void add()求和的问题
只看楼主 加入收藏
蓝天铁翼
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2012-11-21
结帖率:0
收藏
已结贴  问题点数:20 回复次数:18 
void add()求和的问题
天空使函数具有求和的功能
void add(int a,int b,____c)
{
_________= a + b;
}
哪位高人能够帮忙解读下啊,谢了
搜索更多相关主题的帖子: void 
2012-11-21 22:47
小小战士
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:569
专家分:1313
注 册:2012-11-3
收藏
得分:2 
void add(int a,int b,int c)//定义以三个整形形参a,b,c,并且函数的返回值为空,也就是不关心函数的返回值
{
    c = a + b;//将a+b的值赋给c,c就是所求的和
}
至此函数功能实现完成

小小战士,战士中的战斗机!
2012-11-21 22:54
heroinearth
Rank: 10Rank: 10Rank: 10
来 自:云南曲靖
等 级:青峰侠
帖 子:430
专家分:1506
注 册:2011-10-24
收藏
得分:2 
c应是int *,通过指针返回要的值
2012-11-21 23:59
小小战士
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:569
专家分:1313
注 册:2012-11-3
收藏
得分:0 
以下是引用heroinearth在2012-11-21 23:59:14的发言:

c应是int *,通过指针返回要的值

void add(int a,int b,____c)
{
_________= a + b;
}
看清哦,返回值类型是void,没有返回值的,你乱说什么啊?

小小战士,战士中的战斗机!
2012-11-22 00:10
yuccn
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:何方
等 级:版主
威 望:167
帖 子:6815
专家分:42393
注 册:2010-12-16
收藏
得分:2 
引用的方法
void add(int a,int b,int &c)
 {
     c = a + b;
 }

指针
void add(int a,int b, int *c)
 {
     *c = a + b;
 }

我行我乐
公众号:逻辑客栈
我的博客:
https://blog.yuccn. net
2012-11-22 00:21
小小战士
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:569
专家分:1313
注 册:2012-11-3
收藏
得分:0 
回复 5楼 yuccn
哦,对了,你这种是通过引用或传址来改变那块内存的值的,我那种是没有改变实际内存的值的

小小战士,战士中的战斗机!
2012-11-22 00:30
蓝天铁翼
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2012-11-21
收藏
得分:0 
以下是引用yuccn在2012-11-22 00:21:36的发言:

引用的方法
void add(int a,int b,int &c)
 {
     c = a + b;
 }

指针
void add(int a,int b, int *c)
 {
     *c = a + b
貌似这样调试会报错的吧, * c 没有分配空间,直接使用调试不过去啊
2012-11-22 07:59
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
收藏
得分:2 
不同意7楼的观点,*c是形参他没有分配空间,不代表它的实参没有啊。
对于void add(int a,int b,int &c)这样地址做形参的,就不知道了

认认真真的学习,踏踏实实的走路:戒骄戒躁!!!
2012-11-22 09:11
小小战士
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:569
专家分:1313
注 册:2012-11-3
收藏
得分:0 
以下是引用yaobao在2012-11-22 09:11:05的发言:

不同意7楼的观点,*c是形参他没有分配空间,不代表它的实参没有啊。
对于void add(int a,int b,int &c)这样地址做形参的,就不知道了

这只不过是一个功能函数,具体怎样要看调用它的函数想得到怎样的结果

传值:void add(int a,int b,int c)   调用函数add(m,n,k)
没有改变调用函数实参的值,只是在栈区另外开辟了一段内存存放实参的副本,对实参没有影响
传址:void add(int a,int b,int *c)  调用函数add(m,n,&k)
只改变了调用函数实参k的值,传递的是k的地址的副本,被调函数形参c接收的是k的地址副本,这个地址副本保存在另开辟的一段内存中,他们都指向同一个内存地址,通过改变指针c中存放的变量的值间接改变实参k的值,相当于间接寻址
传引用:void add(int a,int b,int &c) 调用函数add(m,n,k)
只改变了调用函数实参k的值,传递的是k的真实地址,没有产生副本,直接用形参c也就相当于用实参k,直接修改,相当于直接寻址

[ 本帖最后由 小小战士 于 2012-11-22 12:21 编辑 ]

小小战士,战士中的战斗机!
2012-11-22 12:00
yuccn
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:何方
等 级:版主
威 望:167
帖 子:6815
专家分:42393
注 册:2010-12-16
收藏
得分:0 
回复 9楼 小小战士
传引用:void add(int a,int b,int &c) 调用函数add(m,n,&k)
这个调用时不正确的。

应该是 :……调用函数add(m,n,k),不用加上&
你可以写个例子测试下

我行我乐
公众号:逻辑客栈
我的博客:
https://blog.yuccn. net
2012-11-22 12:18
快速回复:void add()求和的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016857 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved