-7

有没有其他方法可以交换指向交换值的指针地址?

下面是一种方法。在这里,我们不会更改保存在地址上的值。

void Change_Address( int *&p, int *&pt)
{
 int *pp;
 pp = p;
 p = pt;
 pt= pp;
}
int main(void)
{
   int a =3, b = 4, *p, *p1;
   p = &a; p1 = &b;    
   printf("Values Before interchange %d %d\n", *p, *p1);
   Change_Address(p, p1);
   printf("Values after interchange %d %d", *p, *p1);    
  getch();     
  return 0;
}
4

1 回答 1

2

您的代码使用引用,因为C++C必须使用指向指针的指针:

void Change_Address( int **p, int **pt)
{
 int *pp;
 pp = *p;
 *p = *pt;
 *pt= pp;
}

int main(void)
{
   int a =3, b = 4, *p, *p1;
   p = &a; p1 = &b;    
   printf("Values Before interchange %d %d\n", *p, *p1);
   Change_Address(&p, &p1);
   printf("Values after interchange %d %d", *p, *p1);    
   getch();     
   return 0;
}
于 2013-05-06T09:22:53.610 回答