Ich bin ein durchschnittlicher Programmierer in C ++ und meide normalerweise Zeiger um jeden Preis. Aber ich habe vor kurzem begonnen, einige APIs zu verwenden, die gerade voll von ihnen sind. Und Ehrlichkeit, sie scheinen viel besser zu funktionieren, wenn ich einfach einen ähnlichen Pfad weiterführe, wie es der Autor der API beabsichtigt hat.
In Form und Funktion, aber offensichtlich nicht Syntax - Können "Zeiger" als "sogar etwas" angesehen werden, analog zu "Zellreferenzen" in Microsoft Excel?
Ich habe mehrere Jahre Erfahrung mit Microsoft Excel mit VB. Ich bin auch eine Art "Formula / Reference Junkie", wenn es darum geht, Excel zu verwenden, so macht dieser Gedankengang nur Sinn für mich. Ich möchte nur wissen, ob ich in die richtige Richtung "gerichtet" bin.
Danke!
Eine Zellenreferenz in Excel ist eine Zeichenfolge, die eine bestimmte Position in einer Arbeitsmappe (oder unter bestimmten Umständen eine andere Arbeitsmappe) angibt.
Ein Zeiger in C ++ ist eine Speicheradresse . Die Speicheradresse ist eine Zahl (nicht mehr!), Die einen bestimmten Punkt im virtuellen RAM findet.
Also, sie sind eigentlich ziemlich ähnlich. Ich war bereit, auf deiner Parade zu regnen, indem ich darüber sprach, wie unterschiedlich die beiden sind. Aber die Analogie funktioniert.
Wenn Sie einen Zeiger "dereferenzieren", gehen Sie zu dem Punkt im Speicher, den er anzeigt. In Excel werden die Zellbezüge nicht wirklich "dereferenziert". Aber nah genug.
Wenn Sie int y = 4; int* x = &y;
sagen, ist das so, als ob Sie eine Zelle in B1 erstellen, die "4" enthält, und dann eine andere Zelle, die "= B1" enthält.
Es gibt einige Analogien, die mir in den Sinn kommen, aber der Klassiker, als ich zum ersten Mal Computerprogrammierung lernte, waren Briefkästen in der Poststelle. Stellen Sie sich Briefkästen mit der Aufschrift Tom, Dick und Harry vor.
In der Computerprogrammierung sind Tom, Dick und Harry alle Speicheradressen. Die ersten beiden enthalten Zeiger, der dritte enthält einen numerischen Wert. Das Öffnen des Umschlags in den Postfächern von Tom oder Dick ist wie ein Dereferenzierungszeiger.
Wir schreiben das:
%Vor%Also, ** tom == * dick == harry == 100. Während Tom ein Zeiger auf einen Zeiger zu Harry ist. Und Dick ist ein Zeiger auf Harry.
Ein Zeiger ist nichts anderes als eine -Adresse eines Speichers , die etwas (oder nichts) enthält.
Egal, ob die Zelle tatsächlich irgendwelche Daten enthält, ihre Adresse kann man sich a als Zeiger auf die Zelle vorstellen.
Beachten Sie, dass die Zelle selbst kein Zeiger ist.
Tags und Links c++ pointers excel-formula