Inkrementierung/Dekrementierung



  • Ich weiß was die beiden Operatoren auf sich haben

    aber in den vier Zeilen Beispielen verstehe ich das hier nicht.

    a[i++] = x; [e]equiv[/e] a[i] = x; i = i+1;
    
    a[++i] = x; [e]equiv[/e] i = i+1; a[i] = x;
    
    while (*p1++ = *p2++); [e]equiv[/e]
    while (*p1 = *p2) { p1++; p2++;} p1++; p2++;
    
    while (*++p1 = *++p2); [e]equiv[/e]
    p1++; p2++; while (*p1 = *p2) { p1++; p2++; }
    

    bitte um hilfe. 😞

    Danke im voraus.



  • Nein, ich kriege Augenkrebs ... verdammt zu spaet.
    OK, was verstehst du nicht? Ich mag am liebsten Ja/Nein-Fragen.

    Btw:

    while (*p1++ = *p2++)
    

    Wird nur manchmal 0 bzw. false.



  • Na Alle Zeilen verstehe ich nicht. 😡



  • Ok, dann stelle Ja/Nein-Frage(n). Weil, wenn ich es dir erklaere, dann hast du es morgen schon wieder vergessen.



  • Kannst du es nicht einfach versuchen ich vergesse das nicht. :p



  • soufian88 schrieb:

    Ich weiß was die beiden Operatoren auf sich haben

    aber in den vier Zeilen Beispielen verstehe ich das hier nicht.

    a[i++] = x; [e]equiv[/e] a[i] = x; i = i+1;
    
    a[++i] = x; [e]equiv[/e] i = i+1; a[i] = x;
    
    while (*p1++ = *p2++); [e]equiv[/e]
    while (*p1 = *p2) { p1++; p2++;} p1++; p2++;
    
    while (*++p1 = *++p2); [e]equiv[/e]
    p1++; p2++; while (*p1 = *p2) { p1++; p2++; }
    

    bitte um hilfe. 😞

    Danke im voraus.

    Also, die wollen auf Folgendes raus:
    Der Unterschied zwischen ++i und i++ besteht darin, daß entweder zuerst die Operation durchgeführt und dann inkrementiert wird oder hinterher.
    a[i++] = x heißt, nimm' i als index von a, weise dem den Wert von x zu und dann erhöhe i. Bei a[++i] = x wäre als Erstes die Erhöhung von i dran.

    Danach kommt die verschärfte Variante mit Pointern, da mußt Du aufpassen, ob der Pointer oder die Dereferenzierung inkrementiert wird.

    EDIT: while (*p1++ = *p2++); schaut höchst verdächtig aus, eine Zuweisung im Schleifenkopf?



  • Also, die wollen auf Folgendes raus:
    Der Unterschied zwischen ++i und i++ besteht darin, daß entweder zuerst die Operation durchgeführt und dann inkrementiert wird oder hinterher.
    a[i++] = x heißt, nimm' i als index von a, weise dem den Wert von x zu und dann erhöhe i. Bei a[++i] = x wäre als Erstes die Erhöhung von i dran.

    Danach kommt die verschärfte Variante mit Pointern, da mußt Du aufpassen, ob der Pointer oder die Dereferenzierung inkrementiert wird

    Ich dank dir du hast mich erlöst jetzt habe ich es verstanden. 😃
    denn diese beispiel in den Buch Softwaretechnik in c und c++ (Das Kompendium) kann ich nur empfehlen. 😉

    while (*p1++ = *p2++); schaut höchst verdächtig aus, eine Zuweisung im Schleifenkopf?

    Ne die Zeile ist als Beispiel um ein Überblick auf Inkrementierung und Dekrementierung zu schaffen



  • ^^dieses dreistrichige gleichheitszeichen gibts aber nicht in C, nur in mathe.
    🙂



  • trotzdem ist das Buch zu empfehlen :p


Anmelden zum Antworten