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
Please also mark the comments that contributed to the solution of the article
Content-Key: 293001
Url: https://administrator.de/contentid/293001
Printed on: April 23, 2024 at 17:04 o'clock
7 Comments
Latest comment
Hallo,
Und hinten angefangen zu lesen weil die ersten Seiten sind doch nur was kiddies? Ein paar Kapitel übersprungen?
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 Schau mal hier http://www.easy-coding.de/index.php/Thread/2268-i-und-i-Unterschied-lie ...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:
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