Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Bereiche von Arrays


Papperlapapp - Mo 01.12.08 12:51
Titel: Bereiche von Arrays
guten morgen,

wenn ich ein Array habe zB.

x : array[0..7]

dann habe ich 8 Werte insgesamt. Ich nehme dann einfach mal an das wenn ich

x : array[-3..4]

ich hauch 8 Werte habe und es das Element x[0] natürlich auch gibt?


Marc. - Mo 01.12.08 12:53

Warum probierst du es nicht einfach aus? :zwinker:
Tipp: Length() gibt dir u.a. die Gesamtlänge eines Arrays an.

Grüße,
Marc


Papperlapapp - Mo 01.12.08 13:03

weil ich hier nur den code habe und keinen compiler und ich den code in C portieren möchte.


Marc. - Mo 01.12.08 13:07

user profile iconPapperlapapp hat folgendes geschrieben Zum zitierten Posting springen:
weil ich hier nur den code habe und keinen compiler und ich den code in C portieren möchte.

Wenn das so ist, ja das Array von -3 bis 4 hat 8 Elemente. Das Element ar[0] existiert.


BenBE - Mo 01.12.08 13:26

Wenn Du den Code nach C portieren willst:

C#-Quelltext
1:
2:
T a[8];
arr = a - (-3);

Dann ist das Ansprechen unter C mit a[-3] genauso möglich wie unter Delphi.


Papperlapapp - Mo 01.12.08 13:42

user profile iconBenBE hat folgendes geschrieben Zum zitierten Posting springen:
Wenn Du den Code nach C portieren willst:

C#-Quelltext
1:
2:
T a[8];
arr = a - (-3);

Dann ist das Ansprechen unter C mit a[-3] genauso möglich wie unter Delphi.


ähm, das klingt verlockend wenn ich die weiteren Zugriffe auf das Array dann nicht auch anpassen müsste, allerdings reichen meine C Kenntnisse wohl nicht aus um Deine beiden Zeilen zu verstehen...


BenBE - Mo 01.12.08 14:46

T ist nur ein Kennzeichen für generischen Typ, d.h. dass diese beiden Zeilen für beliebige Datentypen funktionieren ...

Die zweite Zeile führt nur eine Pointer-Addition aus, und verschiebt damit die Offsets im Array.

Siehe C-Hasser in 10 Tagen [http://www.henning-thielemann.de/CHater.html] für mehr Details.