В этом утверждении
*(ptr1) = *(ptr2);
объект типа struct node
, на который указывает указатель ptr2
, назначается объекту того же типа struct node
, на который указывает указатель ptr1
.
Итак, в результате вы получите
ptr1 -> { 2, ptr3 }
ptr2 -> { 2, ptr3 }
ptr3 -> { 3, nullptr }
Итак, в этом цикле, который начинается с ptr1
temp=ptr1;
while(temp!=NULL)
{
cout<<temp->data<<" ";
temp=temp->next;
}
отображаются два объекта, обозначенные ptr1
(что в свою очередь указывает на ptr3
), и объект, на который указывает ptr3
.
Ссылка на ptr2
в объекте, на который указывает указатель ptr1
, потеряна. Теперь элемент данных next
объекта указывает непосредственно на объект, на который указывает указатель ptr3
.