Hi
Zitat Zitat von BlackBerry
Ich gehe mal zuerst auf den zweiten Abschnitt ein:
nehmen wir an wir haben folgenden code:
Code:
int i = 1234;
int *zi = &i;
Dann speichert zi die Adresse von i.
Inkrementieren wir nun zi (also: zi++; bzw ++zi ergibt sich folgender Zusammenhang:
zi = &i + 1;
zi zeigt also auf die Adresse von i plus eins.
Nope.

zi zeigt dann auf die Adresse von i plus sizeof(int) (wenn i wie bei Dir vom Typ int ist), also normalerweise vier.
Die Operation heißt also zi = &i + sizeof(int); oder in diesem Fall vielleicht sogar zi = &i + sizeof(i);, letzteres ist aber eher unwahrscheinlich...

Zitat Zitat von Darkthief
jetzt bleibt nurnoch meine Frage:
ist i++ dasselbe wie ++i ?
Nein.
Code:
if(++i == i + 1)
  /* true, es wird zuerst das Inkrement ausgeführt und dann der Ausdruck überprüft */
if(i++ == i + 1)
  /* false, es findet zuerst die Überprüfung (i == i + 1) statt und dann das Inkrement */
Genauso gilt:
Code:
int i = 0, j = 0;
printf("%d", i++);  // liefert 0
printf("%d", ++j);  // liefert 1
GreetZ RiDER