C语言指针问题~ 交换 a 和 b的值 为什么在swap里面交换地址运行以后a和b还是没有交换?

#include<stdio.h>voidmain(){inta,b;int*p1,*p2;scanf("%d,%d",&a,&b);printf("a=%d,b=%d\... #include <stdio.h>

void main(){
int a,b;
int *p1, *p2;

scanf("%d, %d", &a, &b);
printf("a = %d, b = %d\n",a,b);
p1 = &a; p2 = &b;
void swap(int *pa, int *pb);

swap(p1, p2);
printf("a = %d, b = %d\n", a,b);
}

void swap(int *pa, int *pb)

{
int *p;
p = pa;
pa = pb;
pb = p;
}
如果直接传pa和pa 作为整形int 在main函数里面不能改变我能理解 但是传的是指针*pa和*pb 指针不是相当于在内存中的地址吗 ? 地址的改变不是绝对的吗?
展开
 我来答
Nicker_2010
2011-06-15 · TA获得超过848个赞
知道小有建树答主
回答量:310
采纳率:0%
帮助的人:0
展开全部
void swap(int *pa, int *pb)
{
int p;
p = *pa;
*pa = *pb;
*pb = p;
}
这样就可以了,交换指针指向的内存的数据。
祝好运!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hbc7025
2011-06-15 · TA获得超过340个赞
知道小有建树答主
回答量:195
采纳率:0%
帮助的人:123万
展开全部
#include <stdio.h>
void main(){
int a,b;
int *p1, *p2;

scanf("%d,%d", &a, &b);
printf("a = %d, b = %d\n",a,b);
p1 = &a; p2 = &b;
void swap(int *pa, int *pb);

swap(p1, p2);
printf("a = %d, b = %d\n", a, b);
}

void swap(int *pa, int *pb)
{
int p;
p = *pa;
*pa = *pb;
*pb = p;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式