C++中,使用指针p和使用*&p有什么区别?山东

2024-12-15 14:49:56
推荐回答(1个)
回答1:

首先指出你理解的一个错误,“p和*&p应该都是代表同一个内存存储单元的地址”这句话没错,但是它是有条件的,是在对变量的引用中才正确。

在本题中形参是对变量的声明,并不是对变量的引用。所以你的形参为指针的引用。即 node *&head 为实参的引用。

要想将其换为*head,必须return head;之后调用时获得新的head。

看来你是把指针的定义没搞清楚。指针同其他变量一样也是一个变量。给个例子,自己慢慢比较比较!
void swap(int & m,int & n)//若为swap(int m,int n)将不会交换。

int m,n;
swap(m,n);
将m,n换为指针即变成了
void swap(int* & m,int* &n)//若为swap(int * m,int * n)也将不会交换。

int * m,* n;
swap(m,n);