AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Pointer

Ein Thema von Pseudemys Nelsoni · begonnen am 3. Feb 2004 · letzter Beitrag vom 6. Feb 2004
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von d3g
d3g

Registriert seit: 21. Jun 2002
602 Beiträge
 
#11

Re: Pointer

  Alt 6. Feb 2004, 19:59
Zitat von Pseudemys Nelsoni:
Delphi-Quellcode:
var
  x: ^integer;
  y: ^integer;
begin
  x^ := 42;
  y^ := 13; // überschreibt die 42?
end;
Du hast die Zuweisung von x zu y dazwischen vergessen, die im Video auch vorkommt.

Zitat von Pseudemys Nelsoni:
hoi, das ist sehr gut erklärt, danke

ich hätt noch eine frage jo , und zwar:

Zitat:
byte1 := @gesamt[0]; //byte1 auf dein speicher von gesamt[0] zeigen lassen
byte2 := @gesamt[1]; //byte2 auf dein speicher von gesamt[1] zeigen lassen

wieso haben byte1 und byte2 am ende kein "^" ? setzt man den nur ran bei werte-zuweisungen?
byte1^ := @gesamt[0] hieße: In die Variable, auf die byte1 zeigt, die Adresse von gesamt[0] hineinschreiben. byte1 := @gesamt[0] bedeutet: byte1 auf die Adresse von gesamt[0] zeigen lassen.
-- Crucifixion?
-- Yes.
-- Good. Out of the door, line on the left, one cross each.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#12

Re: Pointer

  Alt 6. Feb 2004, 20:17
@Pseudemys Nelsoni:
Delphi-Quellcode:
byte1 := @gesamt[0]; //byte1 auf dein speicher von gesamt[0] zeigen lassen
byte2 := @gesamt[1]; //byte2 auf dein speicher von gesamt[1] zeigen lassen
ist nicht das gleiche

byte1 und byte2 sind vom Typ "^Char" also ein Zeiger auf einen "Char" und ein Zeiger ist eine Adresse im speicher (Zahl)
Am besten man stellt sich einen Pointer als zahl vor.
Wenn du byte1 noch nix zugewiesen hast ist byte1 also irgend eine zahl
wenn du
byte1 := @gesamt[0] schreibst wird byte1 die speicheradresse (zahl) von gesamt[0] zugewiesen
somit merkst du dir im prinzip in der variablen byte1 die anfangsspeicheradresse von gesamt[0]
byte1 := gesamt[0] sollte also nicht gehen weil "gesamt[0]" keine zahl ist
deswegen dereferenziert man einen Zeiger
Wenn du also "byte11^" schreibst heißt es das du an die stelle im speicher wo byte1 hinzeigt was schreiben willst.. nochmal kurz zusammenfassend
-"@variablenname" gibt die speicheradresse der variablen zurück
-"pointer :=" lässt den zeiger auf eine andere position im speicher zeigen
-"pointer^ :=" schreibt was an die stelle im speicher wo pointer hinzeigt
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#13

Re: Pointer

  Alt 6. Feb 2004, 20:20
ah, ich glaub so langsam versteh ich das (endlich) mal thx.

Edit: ah, SirThornberry hat noch was geschrieben, das les ich dann jetzt mal, hatte das gar nicht gesehen

hatte mich bei meinem beispiel ganz verschrieben, ich meinte ob:

byte1 := @gesamt[0];

und:

byte1 := Addr(gesamt[0]);

das gleiche sind, sorry
Mario
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#14

Re: Pointer

  Alt 6. Feb 2004, 20:33
jup, das ist das gleiche
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#15

Re: Pointer

  Alt 6. Feb 2004, 20:43
danke, das hat mir gholfen
Mario
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:48 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz