int arrays zusammenaddieren
-
Und das funktioniert?
Kann ich mir nicht so recht vorstellen...
-
#include <iostream> using std::cout; using std::endl; int main() { //initialisierung der felder int array[]={2,5,8,9,7,4,5,7,8,9,10,11,14}, result=0; //ausgabe der felder for(int i=0;i<=(sizeof(array) / sizeof(int))-1;i++){ cout << array[i] << endl; //zusammenaddieren der feldelemente result += array[i];}; //ausgabe des ergebnisses cout << "\nAlle Felder zusammen addiert ergibt: " << result; return 0; }
-
ness schrieb:
Und das funktioniert?
Kann ich mir nicht so recht vorstellen...Klar, array ist ja ein Speicherbereich mit einem Zeiger drauf. Deshalb size(array) / size(element)
-
Aber müsste sizeof(array) nicht sizeof(int*) zurückgeben?
-
mein_compiler schrieb:
main.cpp:12: warning: comparison between signed and unsigned integer
kann man aber scheinbar ignorieren
-
enno-tyrant schrieb:
mein_compiler schrieb:
main.cpp:12: warning: comparison between signed and unsigned integer
kann man aber scheinbar ignorieren
klar, eine Größe ist immer positiv.
for (unsigned int i = 0; i < size....)
würde das Problem lösen
-
Microsoft schrieb:
The sizeof operator is often used to calculate the number of elements in an array using an expression of the form:
sizeof array / sizeof array[0]
-
-
OK, habt gewonnen, auch wenn das meinem Verständnis widerspricht...
-
ness schrieb:
OK, habt gewonnen, auch wenn das meinem Verständnis widerspricht...
Array != Zeiger
auch wenn ein Array sich oft wie ein Zeiger verhält.schau dir da mal den Unterschied an... Gibt im C Forum sicher eine Menge Threads dazu. Ansonsten kannst du ja nen eigenen Thread aufmachen wo wir dir die Unterschiede erklären können