Zeiger Pointer
-
Was ist bei deinem Beispiel eigentlich die Speicheradress und der Wert
-
Shady schrieb:
effiziente Parameter-Übergabe (für Lesezwecke) macht man sicher besser mit Referenzen als mit Zeigern. Aber nur weil irgendwas bei einer Sache bequemer ist seh ich nicht ein was daran generell schöner sein soll
Ich sehe auch beim Schreiben keinen Grund dafür, Werte per Zeiger und nicht als Referenz zu übergeben. Jetzt kommt sicher gleich, weil man dann das bei der Übergabe sieht - WOW. Wenn die Funktion einen geeigneten Namen hat, erkennt man auch, dass sie die Parameter ändert und man sollte sowieso immer dokumentieren, was eine Funktion macht.
IMO sollte man immer, wenn es möglich ist, Zeiger durch Referenzen ersetzen.
-
Optimizer schrieb:
..., erkennt man auch, dass sie die Parameter ändert
man erkennt, dass eine funktion nichts ändert, wenn ihre parameter konstante referenzen sind.
Optimizer schrieb:
und man sollte sowieso immer dokumentieren, was eine Funktion macht.
das sowieso
-
Wie kann man die Speicheradresse um eine int Zahl erhöhen. Bitte mit kurzem Beispiel
-
int *pointer; pointer += 4; // nächstes int
Das sollte man genau NICHT machen. Genau DESHALB sollte man Referenzen verwenden. Wozu soll das gut sein, wenn man nicht gerade nen Grafikkartentreiber schreibt.
-
Knock knock... @Optimizer: Da gehst du aber 16 Byte weiter und nicht bloß 4. Btw. finde ich das im kleinen überschaubaren Rahmen garnicht schlimm ein wenig lowlevel zu werden. Man sollte es nur nicht übertreiben.
-
Damn, das liegt am verdammten Assembler
Also hier gehen wir natürlich 4 ints und nicht 4 Byte weiter. Und jetzt könnte man noch spitzfindig sein und sagen, dass ein int nicht auf jedem System 4 Bytes ist.
-
Ich sehe auch beim Schreiben keinen Grund dafür, Werte per Zeiger und nicht als Referenz zu übergeben
mit "für Lesezwecke" hab ich auch nicht unbedingt gemeint, daß man fürs Schreiben dann keine Referenzen nehmen sollte, sondern die Lese-Übergabe per const Referenz ist jedenfalls bei mir der typischste Ort wo ich Referenzen Zeigern vorziehe (jedenfalls wenn es sich beim Parametertyp um einen konkreten Typ wie vector<> oder string handelt).
Was beim Schreiben von strings etc. am Besten ist, dazu sag ich mal nichts, weil ich mir da selber nicht ganz schlüssig bin. (Ich verwende meist für strings und ähnliche Klassen wie fürs Lesen Referenzen)
-
Shady schrieb:
Frage: Wo steht Dein Auto?
Antwort: Dort. (mit Finger auf das Auto zeigend)nach der Erklärung werden Newbies sicher sofort wissen was sie mit Zeigern anfangen können
Ich sprech da jetzt mal aus meiner Erfahrung, meist besteht das Problem mit den Zeigern darin, daß Neulinge ein kleines Verständnisproblem mit dem Konzept haben haben. Dafür ist die von mir gegebene Erklärung eigentlich hilfreich.
-
Optimizer schrieb:
Damn, das liegt am verdammten Assembler
Also hier gehen wir natürlich 4 ints und nicht 4 Byte weiter. Und jetzt könnte man noch spitzfindig sein und sagen, dass ein int nicht auf jedem System 4 Bytes ist.Also aus deinem Beispiel schließe ich, dass es auf deinem wohl so ist.