i++
10 berichten
• Pagina 1 van 1
- spaansebrabander
- Berichten: 76
- Geregistreerd: 05 Nov 2016, 09:42
i++
Ik ben dus nog niet zo lang bezig met Arduino dus.
Ik dacht dat i++ hetzelfde betekent als i=i+1
Nu lees ik:
x++; // increment x by one and returns the old value of x
++x; // increment x by one and returns the new value of x
Ik begrijp niet wat men nu bedoelt met "returns to the old value of x".
In een for statement blijkt dat het niet uitmaakt of je ++i of i++ schrijft.
Hoe zit het nu echt?
Ik dacht dat i++ hetzelfde betekent als i=i+1
Nu lees ik:
x++; // increment x by one and returns the old value of x
++x; // increment x by one and returns the new value of x
Ik begrijp niet wat men nu bedoelt met "returns to the old value of x".
In een for statement blijkt dat het niet uitmaakt of je ++i of i++ schrijft.
Hoe zit het nu echt?
Advertisement
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: i++
voorbeeld:
cpp code
Je zou er goed aan doen om eens de c bijbel te downloaden "The C programming language" van Kerningham & Richie
Daar wordt de basis C taal geschreven zoals deze was gedefinieerd ergens in de 70'er jaren (inderdaad iets van 40 jaar geleden......)
cpp code
uint8_t x = 0;
uint8_t y = x++; // y = 0 en x wordt teruggegeven aan z en daarna met een opgehoogd.
uint8_t z = ++x; // z = 2 x wordt eerst met een opgehoogd en dan pas teruggegeven aan z;
Je zou er goed aan doen om eens de c bijbel te downloaden "The C programming language" van Kerningham & Richie
Daar wordt de basis C taal geschreven zoals deze was gedefinieerd ergens in de 70'er jaren (inderdaad iets van 40 jaar geleden......)
Re: i++
++x doet eerst 1 optellen en dan is de uitkomst dus gelijk aan de x, ofwel de return is de nieuwe waarde
x++ doet eerst de uitkomst doorgeven en dan pas 1 optellen. ofwel de return is de oude waarde
in een for wordt de return niet gebruikt, er staat toch geen japie= voor.
ik heb even opgezocht waar je dit gevonden hebt,
dus ik gebruik hun voorbeeld
als x=10
dan is y= x++ dan is y dus 10, onthouden kun je dit door te kijken naar de volgorde: y=x en dan pas 1 optellen bij x dus die wordt 11
en y=++x eerst optellen dus x=11 en dan pas doorgeven dus y wordt ook 11
x++ doet eerst de uitkomst doorgeven en dan pas 1 optellen. ofwel de return is de oude waarde
in een for wordt de return niet gebruikt, er staat toch geen japie= voor.
ik heb even opgezocht waar je dit gevonden hebt,
dus ik gebruik hun voorbeeld
als x=10
dan is y= x++ dan is y dus 10, onthouden kun je dit door te kijken naar de volgorde: y=x en dan pas 1 optellen bij x dus die wordt 11
en y=++x eerst optellen dus x=11 en dan pas doorgeven dus y wordt ook 11
paul deelen
shooter@home.nl
shooter@home.nl
- spaansebrabander
- Berichten: 76
- Geregistreerd: 05 Nov 2016, 09:42
Re: i++
Ik kan de logica niet volgen. Volgens mij is x++ hetzelfde als x=x+1. Dan wordt de nieuwe x toch gelijk aan de oude x verhoogd met 1. Wat betekent dan dat je de oude waarde terug krijgt? Ik begrijp het verschil tussen x++ en ++x niet.
- spaansebrabander
- Berichten: 76
- Geregistreerd: 05 Nov 2016, 09:42
Re: i++
Ik heb wat geexperimenteerd en vind
als i=1, dan
i++ = 1 daarna
i = 2
i++ = 2 daarna
i = 3
Dus blijkbaar is i++ gelijk aan i, maar in het volgende statement is i wel met 1 verhoogd.
Daar zit toch iets veemds, ongrijpbaars. Dit heeft voor een simpele programmeur geen invloed denk ik. kun je in de praktijk in een for statement i++ en ++i gebruiken? Maar verder is het misschien verstandiger om i = i+1 te gebruiken?
als i=1, dan
i++ = 1 daarna
i = 2
i++ = 2 daarna
i = 3
Dus blijkbaar is i++ gelijk aan i, maar in het volgende statement is i wel met 1 verhoogd.
Daar zit toch iets veemds, ongrijpbaars. Dit heeft voor een simpele programmeur geen invloed denk ik. kun je in de praktijk in een for statement i++ en ++i gebruiken? Maar verder is het misschien verstandiger om i = i+1 te gebruiken?
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: i++
In feite zijn het 2 statements die gemakshalve zijn gecombineerd. Dus als je geen gelijkstelling gebruikt (dus een andere variabele bijv. y = x++) maar gewoon x++; Worden ze achter elkaar uitgevoerd en dus opgehoogd met 1.
++x en x++ kunnen vooral handig zijn als je met arrays werkt en pointers in complexe zoekoperaties.
++x en x++ kunnen vooral handig zijn als je met arrays werkt en pointers in complexe zoekoperaties.
Re: i++
@spaansebrabander, jij mag gewoon i = i + 1 doen Iedereen begrijpt dat, dus is het goede code
De eerste twee reacties van nicoverduin en shooter geven exact aan waar het voor is. Het gaat er om of het resultaat meteen in een statement gebruikt wordt. De 'return waarde' is misschien hier een verwarrende term.
Ik kan het op een iets andere manier uitleggen:
i++ betekend: "gebruik" i en verhoog daarna i.
++i betekend: verhoog i en "gebruik" het daarna.
In beide gevallen wordt i verhoogd, dus het doet hetzelfde. Als i niet in hetzelfde statement gebruikt wordt, dan is het hetzelfde.
Maar i kan in hetzelfde statement meteen gebruikt worden, en dan ontstaat er een verschil.
y = i++; // y wordt i, pas daarna wordt i verhoogd.
y = ++i; // eerst wordt i verhoogd, pas daarna wordt dat in y gestopt.
De eerste twee reacties van nicoverduin en shooter geven exact aan waar het voor is. Het gaat er om of het resultaat meteen in een statement gebruikt wordt. De 'return waarde' is misschien hier een verwarrende term.
Ik kan het op een iets andere manier uitleggen:
i++ betekend: "gebruik" i en verhoog daarna i.
++i betekend: verhoog i en "gebruik" het daarna.
In beide gevallen wordt i verhoogd, dus het doet hetzelfde. Als i niet in hetzelfde statement gebruikt wordt, dan is het hetzelfde.
Maar i kan in hetzelfde statement meteen gebruikt worden, en dan ontstaat er een verschil.
y = i++; // y wordt i, pas daarna wordt i verhoogd.
y = ++i; // eerst wordt i verhoogd, pas daarna wordt dat in y gestopt.
Re: i++
ja brabo je hebt volkomen gelijk, lekker +1 gebruiken, dat leest ook beter.
paul deelen
shooter@home.nl
shooter@home.nl
- spaansebrabander
- Berichten: 76
- Geregistreerd: 05 Nov 2016, 09:42
Re: i++
Het is me nu wel duidelijk. Ik weet nog niet wa precies bij welke toepassing wordt gebruikt, maar dat komt(misschien) nog wel. Het verschil tussen ++i en i++ stond in een "cursus" van Teaking4all, waarin iemand dit uitlegt aan twee jongens van 10 en 13 jaar.......
- FonzieBonzo
- Berichten: 118
- Geregistreerd: 01 Okt 2015, 11:54
- Woonplaats: Castricum
Re: i++
Ik kom van de taal Delphi / Pascal waar ze ++i i++ ook niet kennen.
De uitleg van Koepel ook was voor mij dan ook erg verhelderend!
Vooral de for..next loops vind ik lastig te lezen in C++
in tegenstelling tot for i:=1 to 10 step 2 do........
Gr,
Fonzie
De uitleg van Koepel ook was voor mij dan ook erg verhelderend!
Vooral de for..next loops vind ik lastig te lezen in C++
in tegenstelling tot for i:=1 to 10 step 2 do........
Gr,
Fonzie
10 berichten
• Pagina 1 van 1
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 10 gasten