C++ Inkrement- und Dekrementoperator. Grundlagen Probleme
Hallo ich habe ein problem entweder ist es zu spät am abend oder ich bin blöd.. Ich lerne grade die "basics" von c++ durch ein Buch in dem Aufgaben gestellt werden. Aufgabe: "Welcher wert wird in den folgenden Zeilen ausgegeben" code:
Ich verstehe das komplette Thema nicht kann mir das jemand nochmal anfängerfreundlich erklären? wieso kommt beim ersten 3 raus als ausgabe ?
probleme habe ich auch bei:
Wieso kommt da überall eins und am ende 3 raus eig müsste es doch in der ersten zeile 1 sein in der zweiten 2 in der dritten 4 und in der vierten 5 wieso nun 1 1 1 3 ? bitte um hilfe bin am verzweifeln
//Fehlerkorrektur
#include <iostream>
using namespace std;
int main() {
int ival1, ival2 = 2;
float fval1 = 3.5f;
ival1 = fval1;
cout << ival1 << '\n';
cout << ival1 / ival2 << '\n';
cout << static_cast<int>(fval1 / ival2) << '\n';
cout << static_cast<float>(fval1 / ival2) << '\n';
}
probleme habe ich auch bei:
int i = 1;
cout << i-- << '\n'
cout << ++i << '\n'
cout << i++ << '\n'
cout << ++i << '\n'
Wieso kommt da überall eins und am ende 3 raus eig müsste es doch in der ersten zeile 1 sein in der zweiten 2 in der dritten 4 und in der vierten 5 wieso nun 1 1 1 3 ? bitte um hilfe bin am verzweifeln
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 293001
Url: https://administrator.de/forum/c-inkrement-und-dekrementoperator-grundlagen-probleme-293001.html
Ausgedruckt am: 12.05.2025 um 10:05 Uhr
7 Kommentare
Neuester Kommentar
Hallo,
Und hinten angefangen zu lesen weil die ersten Seiten sind doch nur was kiddies? Ein paar Kapitel übersprungen?
Schau mal hier http://www.easy-coding.de/index.php/Thread/2268-i-und-i-Unterschied-lie ...
Gruß,
Peter
Und hinten angefangen zu lesen weil die ersten Seiten sind doch nur was kiddies? Ein paar Kapitel übersprungen?
Wieso kommt da überall
Grundlagen Gruß,
Peter
Hi,
Das ist schon richtig so... es gibt Pre- und Postinkrement...
Es macht eben einen Unterschied ob ++ oder -- vor oder nach dem i steht...
Beste Grüße
Berthold
Hallo ich habe ein problem entweder ist es zu spät am abend oder ich bin blöd.. Ich lerne grade die "basics" von c++ durch ein Buch in dem Aufgaben gestellt werden. Aufgabe: "Welcher wert wird in den folgenden Zeilen ausgegeben" code:
Ich verstehe das komplette Thema nicht kann mir das jemand nochmal anfängerfreundlich erklären? wieso kommt beim ersten 3 raus als ausgabe ?
ival ist eine integer... Integer haben keine Nachkommastellen. Bei der Konvertierung von float nach integer (ival1 = fval1;) werden die Nachkommastellen entfernt.//Fehlerkorrektur
> #include <iostream>
> using namespace std;
> int main() {
> int ival1, ival2 = 2;
> float fval1 = 3.5f;
> ival1 = fval1;
> cout << ival1 << '\n';
> cout << ival1 / ival2 << '\n';
> cout << static_cast<int>(fval1 / ival2) << '\n';
> cout << static_cast<float>(fval1 / ival2) << '\n';
> }
>
probleme habe ich auch bei:
Wieso kommt da überall eins und am ende 3 raus eig müsste es doch in der ersten zeile 1 sein in der zweiten 2 in der dritten 4 und in der vierten 5 wieso nun 1 1 1 3 ? bitte um hilfe bin am verzweifeln 
int i = 1;
> cout << i-- << '\n'
> cout << ++i << '\n'
> cout << i++ << '\n'
> cout << ++i << '\n'
>
Das ist schon richtig so... es gibt Pre- und Postinkrement...
int i = 1; //i ist 1
//i ist immer noch 1
cout << i-- << '\n' //i wird erst ausgegeben und dann um 1 verringert (Postinkrement)
//i ist jetzt 0
cout << ++i << '\n' //i wird erst um 1 erhöht und dann ausgegeben (Preinkrement)
//i ist jetzt 1
cout << i++ << '\n' //i wird jetzt erst ausgegeben und dann um 1 erhöht (Postinkrement)
//i ist jetzt 2
cout << ++i << '\n' // i wird erst um 1 erhöht und dann ausgegeben (Preinkrement)
//i ist jetzt 3
Es macht eben einen Unterschied ob ++ oder -- vor oder nach dem i steht...
Beste Grüße
Berthold

Moin
Das hat Berthold doch eigentlich schon eindeutig und eigentlich unmissverständlich geschrieben:
Bedeutet das die Variable erst nach der Ausgabe hochgezählt wird, wenn man also i++ ausgibt wird der aktuelle Wert der Variablen ausgegeben und erst danach (Post) hochgezählt.
Genau das Gegenteil von Post-Inkrement, hier wird der Wert der Variablen vor der Ausgabe hochgezählt und sie dann ausgegeben.
Kann man hier schön nachlesen
https://de.wikipedia.org/wiki/Inkrement_und_Dekrement#Wertzuweisungszeit ...
Gruß grexit
Zitat von @Zerou24:
Dass es richtig ist weiß ich nur och verstehe das ergebnis nicht und wo liegt denn der unterschied bei i++ und ++i ?
Dass es richtig ist weiß ich nur och verstehe das ergebnis nicht und wo liegt denn der unterschied bei i++ und ++i ?
Das hat Berthold doch eigentlich schon eindeutig und eigentlich unmissverständlich geschrieben:
Post-Inkrement: i++
Bedeutet das die Variable erst nach der Ausgabe hochgezählt wird, wenn man also i++ ausgibt wird der aktuelle Wert der Variablen ausgegeben und erst danach (Post) hochgezählt.
Pre-Inkrement: ++i
Genau das Gegenteil von Post-Inkrement, hier wird der Wert der Variablen vor der Ausgabe hochgezählt und sie dann ausgegeben.Kann man hier schön nachlesen
https://de.wikipedia.org/wiki/Inkrement_und_Dekrement#Wertzuweisungszeit ...
Gruß grexit
Zitat von @Zerou24:
Dass es richtig ist weiß ich nur och verstehe das ergebnis nicht und wo liegt denn der unterschied bei i++ und ++i ?
Das habe ich dir doch oben in deinem Code kommentiert... Lesen würde helfen...Dass es richtig ist weiß ich nur och verstehe das ergebnis nicht und wo liegt denn der unterschied bei i++ und ++i ?
Hallo,
Nun, lesen musst du schon selbst. Das Verstehen dann auch. Da können wir schlecht helfen. Aber auch hier stand schön was der kleine aber doch vorhandene Unterschied ausmacht. C++ Inkrement- und Dekrementoperator. Grundlagen Probleme Du musst dir nur eine Methode erarbeiten die dein gelesenes in Wissen verwandelt - Üben üben üben üben. Der beste Rechner zum lernen besteht immer noch aus Papier und Bleistift und du spielst die CPU bzw. die APU..
Gruß,
Peter
Nun, lesen musst du schon selbst. Das Verstehen dann auch. Da können wir schlecht helfen. Aber auch hier stand schön was der kleine aber doch vorhandene Unterschied ausmacht. C++ Inkrement- und Dekrementoperator. Grundlagen Probleme Du musst dir nur eine Methode erarbeiten die dein gelesenes in Wissen verwandelt - Üben üben üben üben. Der beste Rechner zum lernen besteht immer noch aus Papier und Bleistift und du spielst die CPU bzw. die APU..
Gruß,
Peter