以下是引用see235959850在2017-1-8 17:02:07的发言:
这还是相当于交换了实参啊
以下是引用吹水佬在2017-1-8 16:49:54的发言:
#include <stdio.h>
void swap(int **p1, int **p2)
{
int *t;
t = *p1;
*p1 = *p2;
*p2 = t;
}
main()
{
int a=1, b=2;
int *p1=&a, *p2=&b;
printf("%d %d\n", *p1, *p2);
swap(&p1, &p2);
printf("%d %d\n", *p1, *p2);
}
还没搞懂,我再看看
这还是相当于交换了实参啊
以下是引用吹水佬在2017-1-8 16:49:54的发言:
#include <stdio.h>
void swap(int **p1, int **p2)
{
int *t;
t = *p1;
*p1 = *p2;
*p2 = t;
}
main()
{
int a=1, b=2;
int *p1=&a, *p2=&b;
printf("%d %d\n", *p1, *p2);
swap(&p1, &p2);
printf("%d %d\n", *p1, *p2);
}
还没搞懂,我再看看
这样看看:
#include <stdio.h>
void swap(int **p1, int **p2)
{
int *t;
t = *p1;
*p1 = *p2;
*p2 = t;
}
main()
{
int a=1, b=2;
int *p1=&a, *p2=&b;
printf("p1与p2交换前\n");
printf("a=%d b=%d\n", a, b);
printf("&a=%d &b=%d\n", &a, &b);
printf("p1=%d p2=%d\n\n", p1, p2);
swap(&p1, &p2);
printf("p1与p2交换后\n");
printf("a=%d b=%d\n", a, b);
printf("&a=%d &b=%d\n", &a, &b);
printf("p1=%d p2=%d\n", p1, p2);
}
只是实参p1与p2交换了,其他都没变,这就是题目所想要的吧?