| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 292 人关注过本帖
标题:刚学c不久,求助!!!
只看楼主 加入收藏
Jeff依然
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2012-4-7
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:2 
刚学c不久,求助!!!
#include
float fun(float x,float y);
void main()
{
    float m,n,*p,*q;
    m=3,n=4;
    p=&m,q=&n;
    fun(*p,*q);
    printf("%f,%f\n",m,n);
}
float fun(float x,float y)
{
    float r,*p,*q;
    p=&x,q=&y;
    r=*p;
    *p=*q;
    *q=r;
    return(x,y);
}
不是很清楚每个变量的生命期,好像有一种方法可以借助这个自定义的函数交换m和n的值,求大神指导下
搜索更多相关主题的帖子: void return 
2012-04-08 15:54
阿敏_000
Rank: 2
等 级:论坛游民
帖 子:10
专家分:10
注 册:2012-1-14
收藏
得分:4 
如果要交换m,n的值,这个程序有错误。
主函数main里的m,n,p,q的生命周期是整个程序运行完,也就是说主函数调用完。fun函数里的x,y,r,p,q的周期是主函数调用fun函数时存在,等到调用完了就释放。而且p,q和主函数里的变量重名了,主函数的p,q变量暂时被遮掩了。最后的return只能返回一个值,是返回不了两个值的。
你要交换m和n的值,要用指针。
2012-04-08 16:16
阴阳
Rank: 4
等 级:业余侠客
帖 子:102
专家分:297
注 册:2012-4-7
收藏
得分:4 
程序代码:
#include<stdio.h>
void fun(float *x,float *y);
void main()

 {
      float m,n,*p,*q;
      m=3,n=4;
      p=&m,q=&n;
      fun(p,q);
      printf("%f,%f\n",m,n);

 }
void fun(float *x,float *y)

 {
      float r;

      r=*x;
      *x=*y;
      *y=r;
    
}


[ 本帖最后由 阴阳 于 2012-4-8 16:24 编辑 ]

一阴一阳之谓道!
2012-04-08 16:22
快速回复:刚学c不久,求助!!!
数据加载中...
 
   



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

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