Arrays



  • Hi,
    bräuchte mal Hilfe mit Arrays 😕 (erstmal statische,glaub ich)also int Array[10] zb also bitte darum mir das zu erklären(nebenbei habe ich als vielleicht ein bisschen alberne Frage:Wie spricht man C++ aus also eher ci plas plas oder eher deutsch also ganz normal? :p )



  • Tommy438 schrieb:

    Hi,
    bräuchte mal Hilfe mit Arrays 😕 (erstmal statische,glaub ich)also int Array[10] zb also bitte darum mir das zu erklären

    http://www.henkessoft.de/arrays_pointer.htm

    (nebenbei habe ich als vielleicht ein bisschen alberne Frage:Wie spricht man C++ aus also eher ci plas plas oder eher deutsch also ganz normal? :p )

    lol? Kannst es auch auf französisch aussprechen, wenn du willst 😉



  • zur letzten frage: wie mans im deutschen liest 🙂

    zu den arrays:

    int array[10];

    das stellt ein feld von 10 int dar.
    der speicher den das array für sich beansprucht sieht so aus:

    jede zahl stellt einend er 10 ints dar:
    |  0  |  1  |  2  |  3  |  4  |  5  |  6  |  7  |  8  |  9  |
    

    den ersten int kannst du über array[0] erreichen, den zweiten mit array[1] usw, den 10. kannst du mit array[9] erreichen, schreibst du array[10] dann schreibst du über die grenzen des arrays hinaus, das kann ziemlich böse enden(muss aber nicht).

    arrays sind eigentlich pointer(hoffe, du weist, was pointer sind, dieses fass mach ich jetzt nicht auf), du kannst also mit arrays wie mit pointern arbeiten.

    so kann man einem feld in einem array einen wert zuweisen: array[1]=5;
    das umgekehrte geht auch: int i=array[3];

    es ist aber auch möglich, dass man zb ein array von chars anlegt, und in den raum, den jeweils 4 chars belegen einen int reinzuschreiben, dazu muss man aber noch zusätzlich casten(auch dieses fass mach ich jetzt besser nicht auf)

    ich hoffe, das war das was du wissen solltest, imho solltest du dir aber mal volkards tutorial anschaun, das erklärt arrays ziemlich gut, soweit ich mich erinner



  • Danke,auch zur zweiten Frage 😃 (Weekend!!!!!!),Danke auch an interpreter,guter Link.



  • otze schrieb:

    arrays sind eigentlich pointer(hoffe, du weist, was pointer sind, dieses fass mach ich jetzt nicht auf), du kannst also mit arrays wie mit pointern arbeiten.

    Fast genauso.
    int foo[2];
    foo++; // Autsch



  • Interpreter was ist daran, denn falsch? ein ++foo (hab mit absicht preinkrement genommen) entspricht doch einfach einem foo+sizeof(int)*1



  • Wieso nehmen alle diese for-Schleife dafür ich weiß nicht warum ich da bei eingabe ein eingabe[i] machen kann/muss?Wozu?Bitte um Erklärung

    //Programm array001.cpp 
    #include <iostream>
    using namespace std;
    
    int main() 
    { 
      int i; 
      char eingabe[80]; 
      cin >> eingabe; 
      for ( i=0; eingabe[i] != '\0'; i++ )  // != bedeutet ungleich 
      cout << eingabe[i]; 
    }
    


  • ???Weiß das jmd?



  • um die uhrzeit sollteste länger als 11 minuten warten, da gehen die leute hier langsam schlafen 😉

    for ( i=0; eingabe[i] != '\0'; i++ )
      cout << eingabe[i];
    

    niemand zwingt dich, die for schleife zu benutzen, aber normalerweise benutzt man die for schleife bei arrays, wenn man jedes element testen will, da würde ne while schleife keinen sinn machen, weil die abbruchbedingung ja schon im vorfeld bekannt ist.

    das array[i] bedeuted: gib mir bitte zugriff auf das element an der stelle i des arrays.

    zb: i=9
    array[i]=5//äquivalent zu array[9]=5;

    i hat sich als zählvariable eingebürgert,ist sowas wie eine "ungeschriebene namenskonvention". Von mir aus kannste statt i auch Rotkohl schreiben, aber wunder dich nicht, wenn andere programmierer dich dafür lynchen 😉

    //edit hab mir nochmald eine frage angeschaut, und kam zum schluss,d ass du keinen peil davon hast, was der code macht:

    zuerst wird ein string eingegeben und in einem array gespeichert.
    danach wird jeder buchstabe bis zum sogenannten stringende zeichen(\0) ausgegeben, nachd em stringende zeichen wird abgebrochen, da danach theoretisch nichts interessantes mehr kommen kann, die eingabe ist danach zuende.

    hier der algorithmus der schleife:

    position=0
    solange das \0 zeichen nicht erreicht ist:
        gib das zeichen im array mit dem index "position" aus
        position+1
    

    anmerkung: index ist die bezeichnung für die zahl die zwischen den "[]" steht, zb bei [5] ist der index 5



  • Ah vielen Dank und sry für meine Ungeduld ich geh jetzt auch bald pennen ciao!



  • SirLant schrieb:

    Interpreter was ist daran, denn falsch? ein ++foo (hab mit absicht preinkrement genommen) entspricht doch einfach einem foo+sizeof(int)*1

    Eben nicht. foo (quasi der "Pointer" auf das 1. Element) ist konstant.



  • Tommy438 schrieb:

    Ah vielen Dank und sry für meine Ungeduld ich geh jetzt auch bald pennen ciao!

    Luschen. Ich fahr jetzt ins Kino 😃


Anmelden zum Antworten