Ausgeben eines volatile int *
-
Muss vorausschicken: ich kenn mich mit C++ nicht gut aus. Ich frag mich aber gerade, wie man einen volatile-Zeiger ausgibt. Ich hatte nie Probleme mit Zeiger-Ausgaben, ich hab's immer so gemacht (oder gleich mit printf):
int i = 42; int * p = &i; cout << p; // gibt zB aus: 0xbfbceaf0
Das gibt mir immer brav die Adresse aus. Aber wenn ich p
volatile
mache, bekomme ich als Ausgabe immer 1 (ja, eins), egal wo i auch sein möge:int i = 42; volatile int * p = &i; cout << p; // gibt immer aus: 1
Warum nur 1? Das glaubt doch keiner. Oder hab ich da was falsch gemacht?
-
cout << boolalpha << p; // gibt immer aus: true
-
Für Zeiger auf volatile-qualifizierte Typen gibts keinen überladenen Ausgabeoperator, also wird sinnigerweise (?) der für bool verwendet.
Man könnte aber den volatile-Qualifier wegcasten:cout << const_cast<int*>(p);
-
Edit: Nichts, sorry.