Forum: Mikrocontroller und Digitale Elektronik Datenzugriff auf Array


von Array (Gast)


Lesenswert?

Hallo,

ich habe ein

double Array[10];


In einer for-schleife möchte ich nacheinander auf die Elemente 
zugreifen.

Wenn ich nun das folgende Konstrukt aufschreibe:

for(uint8_t j=0; j<10; j++)
{
double Var = Array[i];
}

klappt das?
oder müsste der Laufindex "j" ebenfalls im double-Format vorliegen, 
damit die Daten im richtigen Abstand ausgelesen werden?

mfg

von Oliver (Gast)


Lesenswert?

Array schrieb:
> klappt das?

Was sagt denn dein C-Buch zu dem Thema?

Abgesehen davon kannst du dem Compiler kein i für ein j vormachen. Da 
ist der gnadenlos...

Oliver

von Karl H. (kbuchegg)


Lesenswert?

Array schrieb:

> oder müsste der Laufindex "j" ebenfalls im double-Format vorliegen,
> damit die Daten im richtigen Abstand ausgelesen werden?

Eine Frage:
Sind Briefkästen in einem Hochhaus anders durchnummeriert, nur weil sie 
in dem einen Haus breiter sind als im anderen?
Wäre das sinnvoll, oder wäre es eher sinnvoll die Kästen einfach anhand 
ihrer Abfolge durchzunummerieren ohne Ansehen ihrer Breite, denn wenn 
man den Abstand des x-ten Briefkastens von der Mauer in einem speziellen 
Haus haben will, muss man ja sowieso nur dieses x mit der Breite eines 
Briefkastens multiplizieren, da alle Briefkästen eines Hauses gleich 
breit sind.

von Array (Gast)


Lesenswert?

Danke Karl-Heinz.

Frage beantwortet.

Allerdings ist die Frage, ob dies sinnvoll ist oder nicht doch eine ganz 
andere. Möglicherweise geht es ja auch um Verschlüssselung, in der es 
durchaus erwünscht sein kann, Datenbytes auseinander zu reissen...

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Array schrieb:
> Allerdings ist die Frage, ob dies sinnvoll ist oder nicht doch eine ganz
> andere.

Nun, gegeben der Fall, es hätte einen Sinn, Arrays z.B. auch mit einer 
/double/-Variablen zu indizieren:

Was würdest Du hiervon erwarten?
1
double array[10.4];

Wie groß (in Bytes) ist das Array?
1
array[3.5] = 10.23;
2
array[3.51] = 1.204;

Was steht jetzt wo im Array?

von Karl H. (kbuchegg)


Lesenswert?

Array schrieb:
> Danke Karl-Heinz.
>
> Frage beantwortet.
>
> Allerdings ist die Frage, ob dies sinnvoll ist oder nicht doch eine ganz
> andere.

Eigentlich nicht.
Denn wir gehen erst mal vom Normalfall eines Arrays aus. Und bei dem ist 
es so, dass man die Speicherberechnung dem Compiler überlässt. Denn der 
weiß, wie breit konkret in diesem Haus (Array) die einzelnen Briefkästen 
sind und kann daher auch ausrechnen wo im Speicher (auf der Mauer) der 
x-te Briefkasten anfängt und wo er wieder aufhört. Und das alles nur, 
indem man ihm die Nummer des Briefkastens gibt und er weiß, wie groß ein 
einzelner Briefkasten ist. Ob du die Nummer mit arabischen Ziffern oder 
mit römischen Zahlen schreibst, ist dagegen völlig uninteressant. Der 5. 
Briefkasten ist deswegen ja auch nicht weiter von der Wand weg. Und den 
2 Komma 8-ten Briefkasten gibt es nun mal nicht. Es gibt den 2-ten und 
es gibt den 3-ten. Aber dazwischen ist nichts.

> Möglicherweise geht es ja auch um Verschlüssselung, in der es
> durchaus erwünscht sein kann, Datenbytes auseinander zu reissen...

Und, wo liegt da jetzt das Problem?`
Die Frage war ja nicht: wie muss ich es anstellen dem Compiler ein 
Array, welches aus double gebildet wird, so unterzujubeln, dass ich auf 
einzelne Bytes zugreifen kann. Das man eine derartige Operation mal 
braucht, ist unstrittig. Aber deswegen erklärt man ja nicht den 
Ausnahmefall zum Standard.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.