| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 868 人关注过本帖
标题:形参与实参
只看楼主 加入收藏
gao_guai
Rank: 2
等 级:论坛游民
帖 子:73
专家分:16
注 册:2011-6-5
收藏
 问题点数:0 回复次数:20 
形参与实参
#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
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:0 
程序代码:
// 这样写就好
void fun(int*a,int*b)
{
    int k;
    k = *a; *a = *b; *b = k;
}
// 楼主那样写只是改变了通过形参获得的指针所指向的地址,而这个指针所指向的地址的改变只在函数空间中有效,对实参不会有影响。
// 像上面那样写是直接改变指针指向的内存位置的数据


[ 本帖最后由 voidx 于 2011-6-13 11:05 编辑 ]
2011-06-13 11:04
木偶然
Rank: 2
等 级:论坛游民
帖 子:29
专家分:22
注 册:2011-6-12
收藏
得分:0 
void fun(int*a,int*b)
{
    int k;
    k=*a;*a=*b;*b=k;
}
实参与形参之间的数据传递是单向“值传递”方式
不可能通过调用函数来改变实参指针变量的值,但可以改变实参指针变量所指变量的值
2011-06-13 11:26
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:0 
话说貌似楼主变性了,我记得以前看到你是爷们啊。难道是我记错了?

[ 本帖最后由 voidx 于 2011-6-13 11:41 编辑 ]
2011-06-13 11:36
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
收藏
得分:0 
程序代码:
void fun(int & a,int & b)
{
    int k;
    k = a; a = b; b = k;
}
用C++编译器试试这个。


My life is brilliant
2011-06-13 12:53
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
收藏
得分:0 
回复 4楼 voidx
性别也可以改吗?可能是怕没人回复吧,LZ可以放心,我们大部份人都是男女通吃的。

My life is brilliant
2011-06-13 12:53
烟雾中的迷茫
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:621
专家分:1069
注 册:2011-2-9
收藏
得分:0 
传递的只是指针的地址
2011-06-13 13:23
不归鹄
Rank: 9Rank: 9Rank: 9
来 自:冥王星
等 级:蜘蛛侠
威 望:4
帖 子:491
专家分:1380
注 册:2009-12-20
收藏
得分:0 
回复 4楼 voidx
我也记得“她”是爷们

2011-06-13 13:51
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:0 
难道是论坛第一变性人~围观围观
2011-06-13 13:56
讀詠夅
Rank: 2
等 级:论坛游民
帖 子:56
专家分:80
注 册:2011-5-18
收藏
得分:0 
个人觉得~~你的主函数里面换的指针的地址~~~而fun函数里面换的却是指针指向的常量~!!
2011-06-13 15:24
快速回复:形参与实参
数据加载中...
 
   



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

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