Incremento e decremento in C ++




l'incremento in C ++, decremento in C ++, incremento e decremento con ++, C ++il articolo precedente siamo considerati operatori binari, che viene utilizzato per le operazioni aritmetiche sui due operandi (variabili). In questa lezione impareremo come applicare operatori unari, che richiedono un operando. essi sono chiamati incremento ( ++ ) e diminuzione (). Il ruolo di questi operatori, al cambiamento (aumentare o diminuire, rispettivamente,) il valore di una variabile di uno, e il valore verrà sovrascritto. Si consideri l'esempio, che cambierà il valore della variabile variabile unità in tre modi diversi:

Dopo ogni operazione in linee 11, 13 e 15. alla variabile variabile aumentato di un. Come si può vedere, la registrazione più breve – un record con l'incremento. sotto, sulle linee 17 – 19, Abbiamo applicato tre volte decremento e alla fine ottenere il valore variabile ridotto a 3.

Kompiliruem:

incremento e decremento

Entrambi operatore unario può avere due forme: postfix ( in cui l'operatore si trova proprio dietro la variabile) e prefisso (l'operatore si trova davanti alla variabile). In questo esempio, abbiamo utilizzato l'incremento e decremento postfix. Qual è la differenza tra queste forme le une dalle altre? Sia il primo e secondo forme di questi operatori eseguono lo stesso ruolo – aumentare o diminuire di una variabile di uno. Ma se una riga di codice, dove viene applicato il incremento o decremento, presentare le eventuali ulteriori comandi, che tali operatori si comportano in modi diversi. Postfix sarà utilizzato dopo le altre squadre. Diamo un'occhiata al seguente esempio,:

Come risultato di linee di codice 12, vedremo sullo schermo il numero di 0. Succede perché, che l'aumento di unità viene eseguito dopo la produzione di valore variabile variabile lo schermo. Per essere sicuri, che il valore davvero cambiato – in linea 13 prego ci mostra variabile. Ma nel caso della forma di incremento del prefisso (fila 16), Variabile sovrascritti direttamente e già solo allora mostrerà. Per diminuire lo stesso, ma con un riduttore.

Kompiliruem:

incremento e decremento

Ecco uno sguardo a questo esempio più:

risultato:
incremento e decremento

Cercate di capire, perché come risultato di una serie di operazioni 11, variabile un E 'diventato uguale 10. Fare domande nei commenti non proibito :)

Newsletter nuove lezioni sulla programmazione:

Incremento e decremento in C ++
5 (100%) 4 voti

28 pensieri su "Incremento e decremento in C ++

  1. в с++ не такого понятия, как вначале умножение потом всё остальное.
    Есть пример: 1+1*2+1 = 4 (это если по математике считать, вначале умножение..)
    а если как в плюсах: 1+1*2+1 = 5 (Всё идёт по порядку 1+1=2*2=4+1=5)
    Ясно, понятно?! Пнятненько? Ясненько!?

    1. Это такая шутка на Рождество? ;-)

      1+1*2+1 = 4 – это не только в C++, но и во всех нескольких десятках разных языков программирования. Везде!

  2. Я немного не понял..а как это.. когда выполняется первое сложение variable уже 3?

    1. che. Вначале инкремент увеличивает значение переменной, далее все операции по очереди, как в школе учили.

      1. Опишу более понятно, тк сам долго вникал в суть)
        По сути получается как: сначало программа выполняет изменение переменной ( тоесть если ++variable встречается 3 piega, то и значение переменной variable становится равно 4), и только после этого подставляет это полученное значение 4 в наш пример, а далее все идет по математическим законам.
        Ad esempio: [codice]
        INT = variabili 1;
        int a = 0;
        а = ++variable + ++variabile + ++variabile + ++variabile;
        cout << "a = " << un < 5+5+5+5=20

      2. Выражения типа показанногоэто глупость:
        [codice]
        а = ++variable + ++variabile + ++variabile + ++variabile;
        [/codice]
        [B]Стандарт[/B] linguaggio C ++ [B]предупреждает[/B], что результат подобныхэкспериментов” [B]непредсказуем и зависит от компилятора[/B], не переносим даже между версиями компилятора, e [B]не должны[/B] использоваться.

  3. Компилятор Dev-C++ выдает результат 9, и это логично, т. a. сперва определяется первое слагаемое 1+1, затем уже третье (1+1+1)*2

    1. sono d'accordo! ответ 9 e non 10.
      2+1+3*2 = 9 , где с начала складывается 2 e 1, а потом к этой сумме прибавляется произведение 3*2

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

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

    INT = variabili 1;
    int a = 0;

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

    cout << "a = " << un << endl;

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

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

  6. INT = variabili 1;
    int a = 0;

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

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

Lascia un Commento

L'indirizzo email non verrà pubblicato. i campi richiesti sono contrassegnati *