C语言:我使用子函数将指针变量中的指针进行交换,但是为什么所指向的变量却没有变?程序如下:

voidhuan(int*a,int*b){int*temp;temp=a;a=b;b=temp;}voidmain(){inta,b;int*pa;int*pb;sca... void huan(int* a, int* b)
{
int* temp;
temp = a;
a = b;
b = temp;
}
void main()
{
int a, b;
int* pa;
int* pb;
scanf("%d %d", &a, &b);
pa = &a;
pb = &b;
huan(pa, pb);
printf("%d %d %d\n", *pa, *pb);
system("pause");
}
展开
 我来答
GTA小鸡
高粉答主

2018-02-16 · 醉心答题,欢迎关注
知道大有可为答主
回答量:2.6万
采纳率:78%
帮助的人:1.3亿
展开全部

C语言中的任何函数形参都是值传递。所谓引用传递,不过是指针的值传递而已。

你的函数做的工作只是交换函数中的两个临时变量a和b的值,结果不会影响到外部的实参pa和pb。如果想要交换两个指针的值,你的形参应该为两个二级指针。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式