猿问

请问下面四个简单的交换函数的含义和区别是什么?

void swap1(int n1, int n2)

{

int temp = n1;

n1 = n2;

n2 = temp;

}


void swap2(int& n1, int& n2)

{

int temp = n1;

n1 = n2;

n2  = temp;

}


void swap3(int* p1, int* p2)

{

int temp = *p1;

*p1 = *p2;

*p2 = temp;

 } 

 

 void swap4(int* &p1, int* &p2)

 {

  int *temp = p1;

  p1 = p2;

  p2 = temp;

 }


慕粉3936039
浏览 1517回答 1
1回答

习惯受伤

好久不弄c了,我就根据印象答一下,如有错误,及时指出,不要给初学者留下一个错误的思路。。 第一个:swap1(int n1, int n2),值交换,此函数不会影响两个元素的值,无法交换。 第二个:swap2(int& n1, int& n2),地址交换,此函数可以交换,调用是实参为地址,必须先取地址操作(引用)。 第三个:swap3(int* p1, int* p2),指针交换,此函数可以交换值,参数为指针。 第四个:swap4(int* &p1, int* &p2),地址指针交换,参数应该是指向指针的指针。可以交换。
随时随地看视频慕课网APP
我要回答