问答详情
源自:-

两个数组交换(用指针)

void Swap(int *x[],int *y[]);
int main()
{
 int i,j;
 int x[3]={1,2,3};
 int y[3]={4,5,6};
Swap(&x[3],&y[3]);
 for(i=0;i<3;i++)
 {
  printf("%d",x[i]);
 }
 for(j=0;j<3;j++)
 {
  printf("%d",y[j]);
 }
}

void Swap(int *x[],int *y[])
{
 int temp[3]={0,1,2};
  temp[0]=*x[0],temp[1]=*x[1],temp[2]=*x[2];
 *x[0]=*y[0],*x[1]=*y[1],*x[2]=*y[2];
 *y[0]=temp[0],*y[1]=temp[1],*y[2]=temp[2]; 
}
 为什么无法打印出来啊???


提问者:qq_追风少年_ozFGLY 2018-11-29 20:35

个回答

  • 慕田峪5416121
    2018-12-01 18:05:52
    已采纳

    你应该这样改

    #include <stdio.h>


    void Swap(int x[],int y[]);

    int main()

    {

     int i,j;

     int x[3]={1,2,3};

     int y[3]={4,5,6};

    Swap(x,y);

     for(i=0;i<3;i++)

     {

      printf("%d",x[i]);

     }

     for(j=0;j<3;j++)

     {

      printf("%d",y[j]);

     }

    }

    void Swap(int x[],int y[])

    {

     int temp[3];

      temp[0]=x[0],temp[1]=x[1],temp[2]=x[2];

     x[0]=y[0],x[1]=y[1],x[2]=y[2];

     y[0]=temp[0],y[1]=temp[1],y[2]=temp[2];

    }