Operadores de incremento e decremento
Você já deve ter percebido que mencionamos expressões do tipo incremento e decremento. Num sentido mais técnico, trata-se de dois operadores de extrema utilidade em C++.
O operador de incremento é formado por dois sinais de adição ++ e adiciona 1 ao valor da variável à qual é aplicado. Num exemplo anterior (Operações matemáticas com unsigned), a expressão:
uiAcresce = uiAcresce + 1;
produziria o mesmo resultado se fosse substituída por:
uiAcresce++;
Já o operador de decremento é formado por dois sinais de subração -- e subtrai 1 do valor da variável à qual é aplicado:
uiDecresce--;
é equivalente a:
uiDecresce = uiDecresce - 1;
É relevante a posição dos operadores de incremento (++) ou decremento (--) em relação à variável:
++uiAcresce; // operador antecedendo do nome da variável - prefixo uiAcresce++; // operador após o nome da variável - sufixo --uiDecresce; // prefixo uiDecresce--; // sufixo
Na posição de prefixo, primeiro o operador é aplicado e depois a variável tem seu valor acessado. Na posição de sufixo, o valor da variável é acessado antes de o operador ser aplicado.
O exemplo abaixo usa um Button e um Memo no Form. Quando o usuário dá cliques no botão, as variáveis são, conforme o caso, incrementadas ou decrementadas, com operadores pós e pré-fixados. A diferença dos resultados que tais operadores operam nas variáveis nessas diversas situações é demonstrada no Memo:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
int Acresce = 100, ACRESCE = 100,
Decresce = 100, DECRESCE = 100;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Memo1->Lines->Add("incrementa Acresce com sufixo " + String(Acresce++) +
" " "incrementa ACRESCE com prefixo " + String(++ACRESCE));
Memo1->Lines->Add("decrementa Decresce com sufixo " + String(Decresce--) +
" " "decrementa DECRESCE com prefixo " + String(--DECRESCE));
}
//---------------------------------------------------------------------------
|
HOME || MAPA DO SITE || CURSOS || TUTORIAIS || LINKS || FORUM || CONTATO |