用指针交换变量怎么理解?
3个回答
展开全部
这么想吧,指针变量里存放的是地址,*号代表的是取这个指针变量内的地址里的值。
若有 int a; int *p; 那么p=&a是把a的地址存放在int 型的指针变量p里,那么*p代表的就是p的内容,即a的地址上存放的值,也就是a的具体值。
那这里就可以理解了,
t=*p1:把p1指向地址的内容赋给t
*p1=*p2:把*p2指向地址的内容赋给*p1指向地址的内容
*p2=t:把t的值回送给p1指向地址的内容
这里t起到了临时变量的作用,实现了对p1和p2两个指针指向地址的内容的交换
若有 int a; int *p; 那么p=&a是把a的地址存放在int 型的指针变量p里,那么*p代表的就是p的内容,即a的地址上存放的值,也就是a的具体值。
那这里就可以理解了,
t=*p1:把p1指向地址的内容赋给t
*p1=*p2:把*p2指向地址的内容赋给*p1指向地址的内容
*p2=t:把t的值回送给p1指向地址的内容
这里t起到了临时变量的作用,实现了对p1和p2两个指针指向地址的内容的交换
展开全部
*p1是指向p1地址的变量
*t是指向t变量的指针
t = *p1;//将指向p1的变量放在t中
*p1 = *p2;//将指向p2的变量付给将指向p1的地址
*p2 = t;//将t赋给将指向p1的地址
更多追问追答
追问
当t=*t怎么修改
也能思想交换、?
追答
*t = *p1;
*p1 = *p2;
*p2 = *t;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-11-19
展开全部
*p是解引用、就是引用p指向的地址所保存的值、p是个地址、而*p就是一个值、赋值就不用说了把
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询