问答详情
源自:-

关于C的指针的

#include<stdio.h>

int main()

{

    int *pointer_1,*pointer_2;

    int a,b;

    pointer_1=&a;

    pointer_2=&b;

    printf("Please enter two numbers:\n");

    scanf("%d,%d",&a,&b);

    if(a<b)

        swap(pointer_1,pointer_2); 

    printf("%d,%d",a,b);

    return 0;

  }

 为什么 是   swap(pointer_1,pointer_2); 而不是swap(*pointer_1,*pointer_2);这样不能交换a,b的两个值吗


void swap(int *p1,int *p2)

{

    int temp;

    temp=*p1;

    *p1=*p2;

    *p2=temp;

}


提问者:weixin_慕娘635539 2020-02-28 17:09

个回答

  • weixin_慕姐5388646
    2020-06-29 17:10:23

    你先看函数void swap(int *p1,int *p2),要求的两个参数是指针。 所以swap()这里面应该是两个指针。*pointer_1不是指针,是指针的所指的值。  形参实参可以好好理解下