Unterschied: ++i und i++
c_anfänger
- programmiertechnik
Hallo Forum,
ich probiere mich gerade in der C-Programmierung:
was war nochmal der Unterschied zwischen i++ und ++i?
Könntet Ihr mir ein Beispiel für die unterschiedliche
Arbeitsweise geben?
Gibts das auch in anderen Sprachen (Perl, PHP)? Gibt es
Unterschiede?
Vielen Dank
der C-Anfänger
Hallo,
ich probiere mich gerade in der C-Programmierung:
was war nochmal der Unterschied zwischen i++ und ++i?
++i = Praeinkrement (erst erhoehen und dann naechsten Schritt vollziehen)
i++ = (erst naechsten Schritt vollziehen und dann erhoehen)
Könntet Ihr mir ein Beispiel für die unterschiedliche
Arbeitsweise geben?
Hier mal in JavaScript gezeigt:
var i;
i=0;
alert(++i); // 1
i=0;
alert(i++); // 0
alert(i); // 1
Bei dieser Formulierung wird vor der Ausgabe jeweils um 1 erhoeht:
i=0;
++i; // oder i++;
alert(i); // 1
Gibts das auch in anderen Sprachen (Perl, PHP)?
Gibt es
Unterschiede?
Scriptsprachen mit solchen "C-like"-Implemetierungen machen da AFAIK keinen Unterschied.
MfG, Thomas
Holladiewaldfee,
Ganz einfach: ++i erhöht die Variable vor der Ausgabe, i++ danach.
Also:
i=0;
echo i++; # 0
echo i; # 1
echo ++i; # 2
Ciao,
Harry
Hi du Anfänger :-)
i++ ist Postkrement ++i Prekrement, ein Beispiel das sich selbst erklärt:
foo = feld[i++];
entspricht
foo = feld[i];
i=i+1;
dagegen
foo = feld[++i]
entspricht:
i=i+1;
foo = feld[i];
alles klar ? Gibt es auch in anderen Sprachen.
Gruss
Marko
Hallo C-Anfänger,
was war nochmal der Unterschied zwischen i++ und ++i?
Könntet Ihr mir ein Beispiel für die unterschiedliche
Arbeitsweise geben?
---------------------------------------
#include <stdio.h>
int main (int argc, char **argv) {
int a, b, i;
i = 0;
a = ++i;
b = i++;
printf ("%d %d %d\n", i, a, b);
return 0;
}
---------------------------------------
Das Ergebnis musst Du Dir schon selbst ausgeben lassen. ;-)
Gibts das auch in anderen Sprachen (Perl, PHP)?
In diesen beiden: ja, und es gibt keine Unterschiede zu C.
http://de3.php.net/manual/de/language.operators.increment.php
http://selfhtml.teamone.de/cgiperl/sprache/operatoren.htm#berechnung
Christian
Hallo Christian, Marko, Harry und Thomas
vielen Dank für Eure Antworten!
Haben mir sehr geholfen
Viele Grüße
der C-Anfänger
...habe da noch eine Frage:
Lerne mit Hilfe des Buches "Programmiern in C" von Kermit und Richtie.
Da gibts es eine Aufgabe "Schreiben Sie ein Programm, das ein Histogramm
der Längen der eingegebenen Wörter ausgibt".
Was ist ein Histogramm???
Gruss vom c_anfänger
ps: ich weiss, dass der Kerl nicht Kermit heiss, kann mir
aber die Schreibweise des richtigen Namen nicht merken :)
Hallo C_Anfänger,
Was ist ein Histogramm???
Eine Art Balkendiagramm. In vielen Graphikprogrammen findest Du auch eine Histogrammfunktion zu den Farben, die in einem Bild vorkommen. Das Programm könnte z.B. so ein Ergebnis produzieren:
Länge Anzahl
der der
Wörter Wörter
1 (0)
2 ####### (7)
3 ############################### (31)
4 ############### (15)
...
Natürlich müßtest Du die Länge der Balken auf die Bildschirmbreite begrenzen und dann halt alle im gleichen Verhältnis teilen.
ps: ich weiss, dass der Kerl nicht Kermit heiss, kann mir
aber die Schreibweise des richtigen Namen nicht merken :)
Also bitte, was ist so schwer daran, sich Kernighan und Ritchie zu merken? *scnr*
Christian