c语言p=p1;p1=p2;p2=p这句是什么意思

来源:百度知道 编辑:UC知道 时间:2024/06/08 17:04:47
c语言p=p1;p1=p2;p2=p这句在指针程序中是什么意思,另外swap(int*p1,int*p2是什么意思,为什么要swap??

假如你有一杯酒和一杯醋,现在你想让装酒的杯子装醋,装醋的杯子装酒,你需要第三个空杯子,先地酒倒入空杯子(P=P1),再把醋倒入原先盛酒的杯子(P1=P2),然后把原先空杯子里的酒倒入原先放醋的杯子(P2=P)。

p和p1.p2都是指针的话
p=p1表示p指针指向p1的地址
p1=p2表示p1指针指向p2的地址
此时p和p1,p2都指向p2的地址
所以p2=p相当于没起作用
最终所有的指针都指向p2刚开始的地址

swap(int *p1,int *p2)表示交换p1和p2所指向的地址的值

a=3;
b=4;
p1=&a;
p2=&b;
最终变为a=4;
b=3;

c语言p=p1;p1=p2;p2=p这句在指针程序中是什么意思

利用中间变量P 交换 P1和 P2的值 ,楼上的回答的是错的 不会就别乱答

就算 P P1 P2是指针也不会你说的那样

p=p1;p1=p2;p2=p 这个是交换P1与P2的值的 p为中间变量

而swap(int*p1,int*p2)是一个函数来的;
{
int tmp=p1;p1=p2;p2=tmp; (tmp也为中间变量)
};
也是用来交换两个值的。

p=p1,p1=p2,p2=p,这是典型的交换语句,p为中间值,通过它将p1,p2的值进行了交换
swap有交换的作用,但是我没有看到程序整体,无法确定是不是,也可能是子函数的函数名吧!

p=p1;p1=p2;p2=p是赋值语句
SWAP是交换作用
INT 表示整型