| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 432 人关注过本帖
标题:函数的传送问题
取消只看楼主 加入收藏
wxz11191975
Rank: 1
等 级:新手上路
帖 子:98
专家分:0
注 册:2011-6-20
结帖率:85.29%
收藏
已结贴  问题点数:10 回复次数:4 
函数的传送问题
下面是企图解决同一个问题的两个方法,为什么第一个可以运行出结果来,而第二个给我的结果全是0?
1.#include <stdio.h>
#include <stdlib.h>
void mymod(double,double,double *,double *);
  
int main()
{  double a,b;
   scanf("%lf%lf",&a,&b);   
    mymod(a,b,&a,&b);
  system("PAUSE");   
  return 0;}   

void mymod(double x,double y,double *px,double *py)
{  *px=x+y;*py=x-y;
   printf("sum=%lf\n",*px);
   printf("sub=%lf\n",*py);}

2.#include <stdio.h>
#include <stdlib.h>
void mymod(double,double,double *,double *);
  
int main()
{  double a,b;
   scanf("%lf%lf",&a,&b);   
    mymod(a,b,&a,&b);
    printf("sum=%lf,sub=%lf\n",&a,&b);
  system("PAUSE");   
  return 0;}   

void mymod(double x,double y,double *px,double *py)
{  *px=x+y;*py=x-y;}
搜索更多相关主题的帖子: double void include system return double void include system return 
2011-06-23 20:14
wxz11191975
Rank: 1
等 级:新手上路
帖 子:98
专家分:0
注 册:2011-6-20
收藏
得分:0 
回复 2楼 voidx
我不是想扔掉它,我是企图想把第二个的程序改成可以出正确结果的东东来。。。
除了扔掉,可不可以教我怎么改让机器走出正确结果来?:)
2011-06-23 20:27
wxz11191975
Rank: 1
等 级:新手上路
帖 子:98
专家分:0
注 册:2011-6-20
收藏
得分:0 
回复 2楼 voidx
多谢提醒,扔掉后就对了。谢谢,有点傻,不好意思。 :)
2011-06-23 20:28
wxz11191975
Rank: 1
等 级:新手上路
帖 子:98
专家分:0
注 册:2011-6-20
收藏
得分:0 
回复 2楼 voidx
机器是做出来了,还有一点小问题:
我总觉得运行了void以后,结果该是一个指针或是地址值比如说是带*号或是带&号的,为什么打印出来的时候只是要打印a和b就可以有正确结果出来了?void的那个函数里做的是两个指针呀。。。
2011-06-23 20:32
wxz11191975
Rank: 1
等 级:新手上路
帖 子:98
专家分:0
注 册:2011-6-20
收藏
得分:0 
傻问题继续纠结中。。。
可是我还是不明白那个函数的传送的问题。那个void运行出来的结果是两个指针指向的地址,那么a,b对应于函数中的x和y. 为什么mymod(a,b,&a,&b); 后,打印的时候,要打印的是a和b的值呢?
按我的理解,打印的时候,要打印的该是那两个指针指向的地址值呀,可不是去打印a,b呀?为什么打印了ab,void函数的运行结果就出来了?
a和b的值为什么会变了?

不好意思,问题有点傻。。。
2011-06-26 05:49
快速回复:函数的传送问题
数据加载中...
 
   



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

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