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 指针不是相当于在内存中的地址吗 ? 地址的改变不是绝对的吗? 展开
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 指针不是相当于在内存中的地址吗 ? 地址的改变不是绝对的吗? 展开
7个回答
展开全部
void swap(int *pa, int *pb)
{
int p;
p = *pa;
*pa = *pb;
*pb = p;
}
这样就可以了,交换指针指向的内存的数据。
祝好运!
{
int p;
p = *pa;
*pa = *pb;
*pb = p;
}
这样就可以了,交换指针指向的内存的数据。
祝好运!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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;
}
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;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询