![]() |
Indizierung mehrdimensionales Array (nur mal am Rand)
Hi,
ich hab eine ganz einfache Frage: war das bei Delphi schon immer so, dass man mehrdimensionale Arrays auf verschiedene Arten ansprechen kann? z.b. Daten[x,y,z] Daten[x][y][z] Daten[x,y][z] Daten[x][y,z] Oder wurde eine Syntax später übernommen? Bin derzeit etwas durcheinander, da ich derzeit mit mehreren Sprachen zu tun hab (PHP, Delphi, C++, Java). Welche Schreibweise benutzt ihr so? Oder wechselt ihr vll sogar je nach Situation? Ich war selbst an die mit dem Komma gewöhnt, aber hab eben zufällig mal [x][y] geschrieben und mich dann gewundert, dass beides geht. Gruß Michael |
Re: Indizierung mehrdimensionales Array (nur mal am Rand)
Du kannst eine Matrix auch als Vektor von Vektoren auffassen.
Folgende Delkarationen sind äquivalent:
Delphi-Quellcode:
Es ist eigentlich ganz praktisch, da man so Matrizen auch Zeilenweise zuweisen kann.
TMyArray = Array [0..x, 0..y] Of ...
TMyArray = Array [0..x] of Array of [0..y] Of ... Soweit ich mich erinnere, war das schon bei Wirth so (dem Pascal-Erfinder) |
Re: Indizierung mehrdimensionales Array (nur mal am Rand)
Hallo,
Zitat:
In dem Beispiel wird jeweils auf das erste Zeichen zugegriffen, alle Zugriffsarten -{1.} bis {4.}- sind möglich. Die Zugriffsart {4.} macht am besten deutlich was passiert.
Delphi-Quellcode:
var MyStrArr : Array [0..1,0..1] of String;
begin MyStrArr[0,0] := 'karl'; MyStrArr[1,0] := 'Mustermann'; MyStrArr[0,1] := 'Otto'; MyStrArr[1,1] := 'Normaluser'; {1.} MyStrArr[0][0][1] := 'K'; {2.} MyStrArr[0,0,1] := 'K'; {3.} MyStrArr[0][0,1] := 'K'; {4.} MyStrArr[0,0][1] := 'K'; {1.} Showmessage(MyStrArr[0][0][1]); {2.} Showmessage(MyStrArr[0,0,1]); {3.} Showmessage(MyStrArr[0][0,1]); {4.} Showmessage(MyStrArr[0,0][1]); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:26 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz