c++问什么不能通过调用函数来改变实参指针变量的值

void swap(int *p1,int *p2){int *p;p=p1;p1=p2;p2=p;}
2024年11月19日 16:39
有3个网友回答
网友(1):

和下面的函数的不能是一个样的··void swap(int p1,int p2){int p;p=p1;p1=p2;p2=p;}只是衫咐交换了值而已。。。同你的那个,只是交换了p1、p2所代表的地址而已,真正的地址搏山不会因此交换的。。正道还是以改变实参指或银纯针变量所指变量的值 。。没办法。。void swap(int *p1,int *p2){int p;p=*p1;*p1=*p2;*p2=p;}是C++的话,引用是很好的选择。。void swap(int &p1,int &p2){int p;p=p1;p1=p2;p2=p;}

网友(2):

你的代码有误:void swap(int *p1,int *p2){int p;p=*p1; *p1=*p2;*p2=p;}

网友(3):

当然可以, 用再构造数据类型, 效果更明显 !