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 ++
4.6 (91.11%) 9 Stimmen

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

  1. Помогите разобраться в задаче:
    x = y = 0;
    während ( und < 10 ) x += ++ und;
    printf (" x= %d y = %d\n", x, und);

    Ответ x = 55 y = 10
    Я не понимаю как x получается 55. Прям голову сломала(((

    1. x=0+1=1
      x=1+2=3
      x=3+3=6
      x=6+4=10
      x=10+5=15
      x=15+6=21
      x=21+7=28
      x=28+8=36
      x=36+9=45
      x=45+10=55

      pervaya cifra eto zna4enie x a vtoraya cifra eto zna4enie y, vot i resultat, ++y srazu uveli4ivaet zna4enie y na 1

  2. x=0+1=1
    x=1+2=3
    x=3+3=6
    x=6+4=10
    x=10+5=15
    x=15+6=21
    x=21+7=28
    x=28+8=36
    x=36+9=45
    x=45+10=55

    pervaya cifra eto zna4enie x a vtoraya cifra eto zna4enie y, vot i resultat, ++y srazu uveli4ivaet zna4enie y na 1

  3. übrigens, а почему получается число 10 , in Zeile 11 ?? Я использую CodeBlock как среду. Вначале написал сам код, получил 9. Потом специально скопировал ваш иснова 9. Я так понимаю, что в процессе расчета,когда обрабатывается второй инкремент, он далее умножается на 2, а только после этого складывается с левой частью команды. Может объясните, warum so ? Или так и должно быть ? Тогда почему у вас 10? Да и вообще, алгоритм несколько не логичным выходит

  4. Такая последовательность вычислений?
    a = ++ Variable + 1 + ++Variable * 2
    a = (2 + 1 + 2) * 2

    1. a=++variable + 1 + ++variable*2;
      a=(2+1+3)*2; \\ я все правильно понимаю?

      Тогда получается 12))

Hinterlasse eine Antwort

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