Adresse.
-
Hi,
in C kenne ich zur Ausgabe einer Adresse das Formatierungszeichen p, also konkret:
printf ("%p\n", /* some adress */ );Gibt es da auch etwas C++ spezielles?
-
Big Brother schrieb:
Hi,
in C kenne ich zur Ausgabe einer Adresse das Formatierungszeichen p, also konkret:
printf ("%p\n", /* some adress */ );Gibt es da auch etwas C++ spezielles?
Ja. Streams, überladene Stream-Operatoren und Typüberprüfung. Wenn du einen Pointer über einen Stream ausgibst wird die Adresse ausgegeben. Es sei denn es handelt sich um const [signed|unsigned] char* oder std::streambuf*, oder einen Pointer der dahin konvertiert werden kann, oder einen Pointer für den du eine selbstgeschriebene Überladung definiert hast, in dem Fall müsstest du per Hand in einen void* casten um die Adresse ausgeben zu lassen.
http://www.cplusplus.com/reference/iostream/ostream/operator<</
-
int i = 234; int* p = &i; std::cout << p << std::endl; // oder falls du sicher gehen willst: std::cout << (void*)p << std::endl;Die zweite Version, weil es zum Beispiel bei eine
char*oderchar const*nicht die Adresse ausgibt, sondern den C String. Bei einemvoid*wird aber immer die Adresse ausgegeben.Edit: zu langsam ...
Grüssli
-
Oh, so einfach. Ok, danke.
Gruß,
B.B.