Adressen im Speicher
-
// Klasseneinfuehrung.cpp : Definiert den Einstiegspunkt für die Konsolenanwendung. // #include <stdio> #include "stdafx.h" using namespace std; struct Datum { // Repräsentation int t, m, j; }; // Objekt initialisieren void initDatum(Datum& d, int tt, int mm, int jj) { d.t = tt; d.m = mm; d.j = jj; } // Tag(e) addieren void addiereTage(Datum& d, int n) { d.t = d.t+n; } int _tmain(int argc, _TCHAR* argv[]) { Datum Heute; initDatum(Heute, 1,1,2004U); addiereTage(Heute, 12); cout << "Adresse von Heute: " << &Heute << endl; cout << "Adresse von Heute t: " << &Heute.t << endl; cout << "Adresse von Heute m: " << &Heute.m << endl; cout << "Adresse von Heute j: " << &Heute.j << endl; return 0; }
Die Adressen von "Heute" und "Heute t" sind gleich. Wieso?
Ich möchte es verstehen... DankeEdit: Der Quelltext ist Müll.
Nur zum Testen, also net lachen plz! :p
-
Hallo,
die Anfangsadresse der Struktur ist gleichzeitig die erste Adresse der ersten Membervariablen, und das ist nunmal t.
-
Natürlich nur, wenn es eine Struktur ist, wie sie auch in C vorkommen könnte (also ohne Methoden oder Vererbung).
-
Das ist Zufall. Je nach Compiler und Plattform kann das locker auch anders sein.
-
Weil sie an der gleichen Adresse gespeichert sind.
Bye, TGGC (Der Held lebt!)
-
0xdeadbeef schrieb:
Das ist Zufall. Je nach Compiler und Plattform kann das locker auch anders sein.
Nein, nicht bei POD.