p1=p2; \\p1 的指针指向 p2,意味着p2值改变,p1值也改变 p1=p2;\\我想是p1指向改变了,即p1不再指向原变量的地址,改为指向p2所指向的地址.那为什么p2的值也会变呢?#include void swap(int *p1,int *p2){int *t;t=*
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/15 04:47:36
![p1=p2; \\p1 的指针指向 p2,意味着p2值改变,p1值也改变 p1=p2;\\我想是p1指向改变了,即p1不再指向原变量的地址,改为指向p2所指向的地址.那为什么p2的值也会变呢?#include void swap(int *p1,int *p2){int *t;t=*](/uploads/image/z/15166476-36-6.jpg?t=p1%3Dp2%3B+%5C%5Cp1+%E7%9A%84%E6%8C%87%E9%92%88%E6%8C%87%E5%90%91+p2%2C%E6%84%8F%E5%91%B3%E7%9D%80p2%E5%80%BC%E6%94%B9%E5%8F%98%2Cp1%E5%80%BC%E4%B9%9F%E6%94%B9%E5%8F%98+p1%3Dp2%3B%5C%5C%E6%88%91%E6%83%B3%E6%98%AFp1%E6%8C%87%E5%90%91%E6%94%B9%E5%8F%98%E4%BA%86%2C%E5%8D%B3p1%E4%B8%8D%E5%86%8D%E6%8C%87%E5%90%91%E5%8E%9F%E5%8F%98%E9%87%8F%E7%9A%84%E5%9C%B0%E5%9D%80%2C%E6%94%B9%E4%B8%BA%E6%8C%87%E5%90%91p2%E6%89%80%E6%8C%87%E5%90%91%E7%9A%84%E5%9C%B0%E5%9D%80.%E9%82%A3%E4%B8%BA%E4%BB%80%E4%B9%88p2%E7%9A%84%E5%80%BC%E4%B9%9F%E4%BC%9A%E5%8F%98%E5%91%A2%3F%23include+void+swap%28int+%2Ap1%2Cint+%2Ap2%29%7Bint+%2At%3Bt%3D%2A)
p1=p2; \\p1 的指针指向 p2,意味着p2值改变,p1值也改变 p1=p2;\\我想是p1指向改变了,即p1不再指向原变量的地址,改为指向p2所指向的地址.那为什么p2的值也会变呢?#include void swap(int *p1,int *p2){int *t;t=*
p1=p2; \\p1 的指针指向 p2,意味着p2值改变,p1值也改变
p1=p2;\\我想是p1指向改变了,即p1不再指向原变量的地址,改为指向p2所指向的地址.那为什么p2的值也会变呢?
#include
void swap(int *p1,int *p2)
{
int *t;
t=*p1;
p1=p2;
*p2=t;
}
void main()
{ int a=1,b=3,*p=&a,*q=&b;
swap(&p,&q);
printf("%d,%d,%d,%d\n",a,b,*p,*q);
}
p1=p2; \\p1 的指针指向 p2,意味着p2值改变,p1值也改变 p1=p2;\\我想是p1指向改变了,即p1不再指向原变量的地址,改为指向p2所指向的地址.那为什么p2的值也会变呢?#include void swap(int *p1,int *p2){int *t;t=*
执行 p1=p2 后,可以认为 p1 就是 p2,因为 p1 已经放弃了原有的指向,指向了新的地址 p2,此时,无论改变 *p1 还是 *p2 ,都是改变 p2 指向的内存;原 p1 指向的内存,在函数中就无法访问了.
void swap(int *p1,int *p2)
{
int *t;
t=*p1;
p1=p2; //错误,应该改成 *p1 = *p2;
*p2=t;
}