标题:形参与实参
取消只看楼主
gao_guai
Rank: 2
等 级:论坛游民
帖 子:73
专家分:16
注 册:2011-6-5
 问题点数:0 回复次数:5 
形参与实参
#include"stdio.h"
void fun(int*a,int*b)
{
    int *k;
    k=a;a=b;b=k;
}
main()
{
    int a=1,b=2,*x=&a,*y=&b;
    fun(x,y);
    printf("%d%d",a,b);
    printf("%d%d",*x,*y);
}
为什么调用fun后*x和*y的值没有改变呢,不理解了,高人指点
搜索更多相关主题的帖子: void include 
2011-06-13 10:57
gao_guai
Rank: 2
等 级:论坛游民
帖 子:73
专家分:16
注 册:2011-6-5
得分:0 
回复 4楼 voidx
肯定是你记错了,我都没有改过
2011-06-13 16:31
gao_guai
Rank: 2
等 级:论坛游民
帖 子:73
专家分:16
注 册:2011-6-5
得分:0 
回复 4楼 voidx
   ......  ......
2011-06-13 17:26
gao_guai
Rank: 2
等 级:论坛游民
帖 子:73
专家分:16
注 册:2011-6-5
得分:0 
回复 2楼 voidx
程序代码:
void fun(int *a,int *b)
{
int *k;
k=a;a=b;b=k;
}
和
void fun(int *a,int *b)
{
int k;
k=*a;*a=*b;*b=k;
}
传递的时候到底发生了什么?为什么会不一样呢,都是传的地址啊?第一个把两个指针交换了,第二个把指针里的内容交换了


[ 本帖最后由 gao_guai 于 2011-6-16 09:59 编辑 ]
2011-06-16 09:26
gao_guai
Rank: 2
等 级:论坛游民
帖 子:73
专家分:16
注 册:2011-6-5
得分:0 
回复 17楼 官人
不是的,我的没有问题,
2011-06-16 09:57
gao_guai
Rank: 2
等 级:论坛游民
帖 子:73
专家分:16
注 册:2011-6-5
得分:0 
回复 20楼 lz1091914999
什么意思,不好意思,不用解释了,懂了

[ 本帖最后由 gao_guai 于 2011-6-16 10:01 编辑 ]
2011-06-16 10:00



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




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

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