标题:函数的传送问题
取消只看楼主
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



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-343815-1-1.html




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

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