下面的五个函数哪个能够成功进行两个数的交换?
void swap(int p,int q)
{
	int temp;
	temp=p;
	p=q;
	q=temp;
}

void swap2(int *p,int *q)
{
	int *temp;
	*temp=*p;
	*p=*q;
	*q=*temp;
}

void swap3(int *p,int *q)
{
	int *temp;
	temp=p;
	p=q;
	q=temp;
}

void swap4(int &p, int &q)
{
	int temp;
	temp=p;
	p=q;
	q=temp;
}

void swap5(int *p,int *q)
{
	int temp;
	temp=*p;
	*p=*q;
	*q=temp;
}
你会选哪个呢?
答案见:解析面试题:下面哪个函数实现两个数的交换——指针与引用的理解