Hallo Rouven,
Bei der Subtraktion von Zeigern, die du wahrscheinlich im Sinn hattest, wird das Prinzip umgekehrt angewandt. (&b-&a) aus deinem Beispiel ergibt intern zunächst 4 Bytes, das entspricht wieder genau 1*sizeof(int), also ist das Endergebnis 1.
Ich liege aber doch richtig, dass das Ergebnis von
int a;
int b;
nicht notwendigerweise auf eine Differenz von 1 herausläuft, oder?
ähm, wenn du so fragst... nein, eine absolut sichere Erkenntnis ist das natürlich nicht. ;-)
Es wäre theoretisch denkbar, dass die beiden ints an völlig unterschiedlichen Stellen liegen, oder nicht?
Ja. Aber real existierende Compiler legen Variablen, die unmittelbar nacheinander deklariert werden, in der Regel auch auf direkt benachbarte Speicheradressen. Eventuell zugriffsoptimiert, d.h. auf eine durch 2 oder 4 teilbare Adresse ausgerichtet, aber üblicherweise aufeinanderfolgend.
So long,
Martin
Lieber Blödeleien als blöde Laien.