| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 760 人关注过本帖
标题:求解????
只看楼主 加入收藏
阳光110
Rank: 1
来 自:四川
等 级:新手上路
帖 子:25
专家分:1
注 册:2011-10-21
结帖率:100%
收藏
已结贴  问题点数:1 回复次数:13 
求解????
int  p(int x,int y)
{
    int t;
    t=x;x=y;y=t;
    return p;

}
main()
{
    int x=3,y=5;
    printf("%d,%d\n",x,y);
    p(x,y);
    printf("%d,%d\n",x,y);
}
为什么输出的都一样呀,p交换了,不就相当于没交换??求解????
搜索更多相关主题的帖子: return 
2011-12-02 13:23
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
形参和实参,单向值传递

总有那身价贱的人给作业贴回复完整的代码
2011-12-02 13:33
wcl597213373
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2011-12-2
收藏
得分:0 
p(x,y)执行后形参就释放了,实参值不会改变,要用指针或设置静态变量就可改变值了。
2011-12-02 13:59
B李庚
Rank: 2
等 级:论坛游民
帖 子:15
专家分:24
注 册:2011-12-1
收藏
得分:0 
定于函数单向值传递。听三楼的设置静态变量static,很好办的。
2011-12-02 14:18
埋首
Rank: 2
等 级:论坛游民
帖 子:24
专家分:76
注 册:2011-12-1
收藏
得分:0 
#include "stdio.h"
void  p(int &x,int &y)
{
    int t;
    t=x;x=y;y=t;
}
 main()
{
    int x=3,y=5;
    printf("%d,%d\n",x,y);
    p(x,y);
    printf("%d,%d\n",x,y);
    return 0;
}
  这是修改后的代码,只有将地址传给了函数p才能实现值的交换
2011-12-02 21:46
xp0213
Rank: 7Rank: 7Rank: 7
来 自:湖北武汉
等 级:黑侠
威 望:1
帖 子:222
专家分:524
注 册:2011-10-26
收藏
得分:0 
#include<stdio.h>
void p(int &x,int &y)
{
    int t;
    t=x;x=y;y=t;
 

}
main()
{
    int x=3,y=5;
    printf("%d,%d\n",x,y);
    p(x,y);
    printf("%d,%d\n",x,y);
}
2011-12-02 21:54
yacopo
Rank: 1
等 级:新手上路
帖 子:15
专家分:5
注 册:2011-12-2
收藏
得分:0 
p 运行后造成的改变只对函数内的变量有效,结束后,变量会被删除。
你弄个全局变量或者用指针就可以了。
2011-12-02 22:00
modengwen
Rank: 2
来 自:柳州
等 级:论坛游民
帖 子:21
专家分:19
注 册:2011-11-21
收藏
得分:0 
初学者出现这个问题,可以理解,是因为对函数参数的传递理解不好,按楼上说的上机自己调试练习一些,相信就可以理解了!
2011-12-02 22:18
于祥
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:5
帖 子:1047
专家分:4132
注 册:2011-4-24
收藏
得分:0 
#include <stdio.h>
void  p(int x,int y)
{
    int t;
    t=x;x=y;y=t;
   
printf("%d,%d\n",x,y);
}
main()
{
    int x=3,y=5;
    printf("%d,%d\n",x,y);
    p(x,y);
    }这样更好理解

最基础的往往是你最容易忽略的!
2011-12-02 22:32
埋首
Rank: 2
等 级:论坛游民
帖 子:24
专家分:76
注 册:2011-12-1
收藏
得分:0 
楼上的兄弟,你那个函数不就没意义了吗?
你那代码不和没调用函数一样吗?
跟下面的代码有区别吗?感觉那样就失去了一个调用函数的意义了。
#include <stdio.h>
main()
{
    int x=3,y=5;
    printf("%d,%d\n",x,y);
    int t;
    t=x;
    x=y;
    y=t;
    printf("%d,%d\n",x,y);
 }
2011-12-02 23:34
快速回复:求解????
数据加载中...
 
   



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

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