C语言调用函数实参改变的问题。

#include<stdio.h>voidfun(int*a,int*b){int*c;c=a;a=b;b=c;}main(){intx=3,y=5,*p=&x,*q=&... #include <stdio.h>
void fun( int *a,int *b)
{ int *c;
c=a;a=b;b=c;
}
main()
{ int x=3, y=5, *p=&x, *q=&y ;
fun(p,q); printf("%d,%d,",*p,*q);
fun(&x,&y); printf("%d,%d\n",*p,*q);
}
程序如上,为什么运行的结果是3,5,3,5
不是说指针做参数的时候实参传递的是形参的地址值,因而对于形参的操作会影响到实参这样的么?
展开
 我来答
kaixingui2012
2015-09-10 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6203万
展开全部
     void fun( int *a,int *b)
     { 
     int c;
       c=*a;*a=*b;*b=c; //你要改变地址中的内容才可以达到效果, 只进行a b的变化,a b 是形参,自身的变化,与实参无关! 传地址,只有改变地址中的内容,才能影响到实参数据(指针)中的内容! 而实参指针,不受影响
     }
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式