Erhöhen und Verringern in C ++




der Zuwachs in C ++, Dekrement in c ++, Zuwachs und Abnahme der mit ++, C ++das vorheriger Artikel wir sind binäre Operatoren betrachtet, welches für arithmetische Operationen mit zwei Operanden verwendet, (Variablen). In dieser Lektion lernen wir, wie man die unäre Operatoren anwenden, die erfordern ein Operand. sie genannt werden Zuwachs ( ++ ) und Dekrement (). Die Rolle dieser Betreiber in, zu ändern (erhöhen bzw. zu verringern,) der Wert einer Variablen um eins, und der Wert wird überschrieben. Betrachten Sie das Beispiel, welche den Wert einer Variablen ändern Variable Einheit auf drei verschiedene Weisen:

Nach jeder Operation in den Zeilen 11, 13 und 15. auf die Variable Variable um eins erhöht. Wie Sie sehen können, die kürzeste Aufzeichnungs – ein Datensatz mit dem Zuwachs. unten, auf den Leitungen 17 – 19, Wir haben drei Mal dekrementiert angewendet und erhalten schließlich den Wert Variable reduziert 3.

Kompiliruem:

Inkrement- und Dekrement

Beide unärer Operator kann zwei Formen haben: postfix ( wo der Bediener befindet sich direkt hinter der Variablen) und Präfix (die Bedienungsperson vor der variable befindet). In diesem Beispiel verwendeten wir Postfix-Inkrement- und Dekrement. Was ist der Unterschied zwischen diesen Formen voneinander? Sowohl die ersten und zweiten Formen dieser Operatoren führen die gleiche Rolle – Erhöhen oder Verringern einer Variablen um eins. Aber wenn eine Zeile Code, wo die Zunahme oder Abnahme angewendet wird, präsentieren weitere Befehle, während diese Operatoren auf unterschiedliche Weise verhalten. Postfix wird nach den anderen Teams verwendet werden. Schauen wir uns das folgende Beispiel aussehen,:

Als Ergebnis der Codezeilen 12, wir werden auf dem Bildschirm sehen, die Zahl der 0. Es geschieht, weil, dass der Anstieg in der Einheit wird nach dem Abzug Wert der Variablen auszuführen Variable der Bildschirm. Um sicherzustellen, dass, dass der Wert tatsächlich geändert – in Zeile 13 bitte zeigen Sie uns Variable. Aber im Fall des Präfixes Form Inkrement (Reihe 16), Variable überschrieben direkt und bereits nur dann angezeigt werden. Zu dekrementieren alle die gleiche, aber mit einer Reduktionseinheit.

Kompiliruem:

Inkrement- und Dekrement

Hier ist ein Blick auf dieses Beispiel mehr:

Ergebnis:
Inkrement- und Dekrement

Versuchen Sie zu verstehen, weshalb als Ergebnis einer Reihe von Operationen 11, Variable ein Es wurde gleich 10. Fragen zu stellen, in den Kommentaren nicht verboten :)

Newsletter neue Lektionen über die Programmierung:

Erhöhen und Verringern in C ++
5 (100%) 4 Stimmen

28 Gedanken zu "Erhöhen und Verringern in C ++

  1. C ++ ist nicht so etwas, die Multiplikation und dann alles andere.
    Es ist ein Beispiel: 1+1*2+1 = 4 (wenn es in der Mathematik betrachtet, erste Multiplikation ..)
    und wenn sowohl die Profis: 1+1*2+1 = 5 (Alles geht nach der Reihenfolge von 1 + 1 = 2 * 2 = 4 + 1 = 5)
    klar, klar?! Pnyatnenko? Yasnenko!?

    1. Das ist ein Witz für Weihnachten? ;-)

      1+1*2+1 = 4 – dies nicht nur in C ++, und in allen Dutzende von verschiedenen Programmiersprachen. überall!

      1. Ich werde beschreiben deutlicher, vielleicht lange er in das Wesen forschte)
        In der Tat stellt sich heraus, als: Zuerst führt das Programm eine Änderung der variablen ( dh wenn ++ Variable gefunden wird 3 falten, und der Wert der Variable Variable gleich 4), und nur dann fügt diesen berechneten Wert 4 in unserem Beispiel, und dann geht alles nach mathematischen Gesetzen.
        Z.B: [Code]
        int Variable = 1;
        int a = 0;
        а = ++ Variable + ++Variable + ++Variable + ++Variable;
        cout << "a = " << ein < 5+5+5+5= 20

      2. Ausdrücke des Typs gezeigt – es ist Unsinn:
        [Code]
        а = ++ Variable + ++Variable + ++Variable + ++Variable;
        [/Code]
        [b]Standard[/b] Sprache C ++ [b]warnt[/b], dass das Ergebnis eines solchen “Experimente” [b]ist nicht vorhersagbar und hängt von der Compiler[/b], nicht einmal unter den Versionen des Compilers toleriert, und [b]sollte nicht[/b] gebraucht.

  2. Der Compiler Dev-C ++ gibt das Ergebnis 9, und es ist logisch, t. zu. zuerst definiert das erste Glied 1+1, dann die dritte (1+1+1)*2

    1. ich bin damit einverstanden! Antwort 9 und nicht 10.
      2+1+3*2 = 9 , die von Anfang entwickelt 2 und 1, und dann zu dieser Summe hinzugefügt, um das Produkt 3*2

  3. ответ будет зависеть от компилятора, если будете такие конструкции на практике использовать вам руки отобьют

  4. Чтобы в Dev++ получилось правильно, нужно писать так

    int Variable = 1;
    int a = 0;

    a = ++ Variable + (1 + ++Variable * 2);

    cout << "a = " << ein << endl;

    Хотя всё равно не очень понимаю, warum, ведь
    ++variable = 2

    2+(1+ (2+1)*2)
    2 + (1 + (3*2))
    2 + 7 = 9

  5. int Variable = 1;
    int a = 0;

    a = ++ Variable + (1 + ++Variable * 2);

    cout << "a = " << ein << endl;
    Компилятор Microsoft Visual Studio Express 2013 дает результат 10 (притом, без скобок тот же результат). Унарная операция префиксного инкремента выполняется первой, притом дважды. variable последовательно принимает значения 2, затем – 3. Затем происходит умножение 3*2=6 и потом сложение 3+1+6=10. Такие конструкции лучше не строить, но о приоритетах операций нужно помнить.

Hinterlasse eine Antwort

Deine Email-Adresse wird nicht veröffentlicht. erforderliche Felder sind markiert *