Bin ich zu dumm für meinen Studiengang?

3 Antworten

Das mit den Pointern ist in der Tat etwas tricky.
Aber da kann man sich schöne Vergleiche aus der realen Welt bauen.
Im Schuhregal stehen Schuhe und ein Verweis auf einen Schrank, in dem weitere Schuhe stehen.
Es gibt Verweise auf Schuhe, auf Schuhkartons,auf Schränke, auf Listen von weiteren Verweisen und jeder dieser Verweise sagt, worauf er zeigt.
Es gibt auch welche, die nicht verraten, worauf sie zeigen (untyped pointer). Da muss man aufpassen worauf der zeigt, damit man sich keinen Schuhkarton anzieht.

Mit realen Entsprechungen kommt man da meist gut weiter. Kein Grund, das Handtuch zu werfen!

Moped85  29.01.2023, 21:22
Kein Grund, das Handtuch zu werfen!

Oder den Zeiger der auf das Handtuch zeigt.

0

Ein Feldname ist ja schon ein Zeiger. Er zeigt nämlich auf eine Speicheradresse.

Wenn ich programmiere

preis = preis * 1.1;

wird der Wert um 10% erhöht (Inflation). Du musst nicht wissen, wo im Speicher das geschieht.

Wenn ich nun in dem Datensatz noch mehr machen möchte als nur ein Feld zu bearbeiten, übergebe ich den an eine function.

function bearbeiteWare( materialstamm ) {
materialstamm["preis"] = materialstamm["preis"] * 1.1;
...
}

bearbeiteWare( artikel );

Nun gibt es zwei Möglichkeiten:

  1. Der Funktion wird eine Kopie übergeben, dann muss das Ergebnis der Bearbeitung mit return zurückkopiert werden.
  2. Der Funktion wird artikel als Zeiger (Pointer) übergeben, dann muss er nicht zweimal kopiert werden, sondern wird direkt bearbeitet. Der Datensatz „artikel“ heißt innerhalb der Funktion dann „materialstamm“.

Wie man die beiden Versionen unterscheidet, ist in den Programmiersprachen unterschiedlich.

Adornoblyat 
Fragesteller
 30.01.2023, 20:03

Braucht man die noch für andere Dinge oder ausschließlich für Methoden, Structs etc?

0

Du solltest mal ne Nacht drüber schlafen und es dann erneut probieren.

Und dann nochmal drüber schlafen, und dnn wieder probieren. Bis du es verstanen hast. In der Zwischenzeit kannst du dich dann mit anderen Dingen beschäftigen.