@TianCheng 2016-10-10 13:36 采纳率: 100%
浏览 2983
已采纳

C语言指针问题,通过指针交换地址

本人在学C语言指针,代码想要实现两个数从大到小输出,但是为什么实现不了?利用指针交换地址
#include
void swap(int *p1,int *p2)
{
int *temp;
temp=p1;
p1=p2;
p2=temp;
}
void main()
{
int a,b;
int *pointer_1,*pointer_2;
scanf("%d %d",&a,&b);
pointer_1=&a;
pointer_2=&b;
if(a<b)
swap(pointer_1,pointer_2);

printf("%d %d\n",*pointer_1,*pointer_2);
}

  • 写回答

8条回答

  • Sakura__Lu 2016-10-10 15:38
    关注

    你这是没弄清楚指针,指针就是一个地址,相当于你家的门牌号一样,只是一个标识数据存放位置的地方, 所以你要用指针指向的数据的时候应该是*p1而不是直接用p1,p1只是你家的门牌号而不是你家~( ̄▽ ̄~)~

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(7条)

报告相同问题?