Newbie Operator Vraag

Status
Niet open voor verdere reacties.

Pizara

Gebruiker
Lid geworden
18 jul 2008
Berichten
510
Kan iemand mij een simpele uitleg geven wat het verschil is tussen deze operators?

i-- (i = i -1)
i++ (i = i + 1)
--i ....
++i ...

Dank ,
Pizara
 
Ment noemt die operators de prefix en de postfix operator. Ze verhogen/verlagen de variabele beide met 1, het enige verschil is wanneer dit gebeurt.

Code:
int main(int argc, char *argv[])
{
    int i(0), j(0);
    
    std::cout << i++ << ':' << ++j << '\n';
    
    system("PAUSE");
    return EXIT_SUCCESS;
}

De bovenstaande code zal de output '0:1' geven. Met andere woorden verhoogt de prefix operator de variabele voordat deze gebruikt wordt en de postfix operator doet dit nadat de variabele is gebruikt.

Code:
int i(0), j(0);

while(i++ < 10) std::cout << i << ' ';
std::cout << '\n';
while(++j < 10) std::cout << j << ' ';
std::cout << '\n';

Bij de bovenstaande code zal de eerste while loop de output 1 t/m 10 geven, en bij de tweede loop zal de output 1 t/m 9 zijn.

Ik hoop dat het een beetje duidelijk is. :)
 
Het verschil is dat bij i++ eerst de waarde van i wordt gebruikt en daarna wordt de waarde van i pas verhoogd. Bij ++i gaat het precies andersom.

Voorbeeldje
Code:
#include <iostream>

using namespace std;

int main()
{
        int i=0;
        int j=0;
        for (int k=0;k<5;k++)
        {
                cout << "i++: " << i++ << endl;
                cout << "++j: " << ++j << endl;
                cout << endl;
        }
 return 0;
}

Levert op:
i++: 0
++j: 1

i++: 1
++j: 2

i++: 2
++j: 3

i++: 3
++j: 4

i++: 4
++j: 5

Van het verschil heb je alleen last als je i++ (of ++i) als waarde gebruikt.
 
Ja duidelijk ,

Dank beide... wel verwarrend hoor...
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan