Während das Doppelzeigerkonzept zu verstehen und wo es verwendet werden sollte, habe ich einen Zweifel. Ich hatte diesen Code experimentiert und gefunden, dass ich den Zeiger anstelle der Doppelzeiger als Referenz verwenden konnte.Doppelter Zeiger gegen Durchgang durch Referenzzeiger
#include<iostream>
using namespace std;
void modify_by_value(int*);
void modify_by_refrence(int* &);
int a=4, b=5;
void main()
{
int *ptr = NULL;
ptr = &a;
cout << "*ptr before modifying by value: " << *ptr << endl;
modify_by_value(ptr);
cout << "*ptr after modifying by value: " << *ptr << endl;
cout << "*ptr before modifying by refrence: " << *ptr << endl;
modify_by_refrence(ptr);
cout << "*ptr after modifying by refrence: " << *ptr << endl;
}
void modify_by_value(int* ptr) //this function can change *ptr but not the ptr(address contained) itself;
{
ptr = &b;
}
void modify_by_refrence(int * &ptr) //this function has refrence and hence can modify the pointer;
{
ptr = &b;
}
Was den Vorteil der Verwendung von zwei Zeigern statt Referenz ist? Und wo dieses Ding sollte
Sie sollten diejenige verwenden, die die Absicht des Codes deutlicher widerspiegelt. –
@DavidSchwartz wenn die Absicht ist, den Wert eines Zeigers zu ändern, scheint es nicht offensichtlich, was zu wählen .. zumindest vermutlich nicht zu Omkar – xaxxon
Wie aus den Antworten zu sehen, ist dies eine Frage "in erster Linie" und sollte sein geschlossen als solche. – xaxxon