![]() |
Pointerfrage und -Problem
Folgender Code:
Code:
int nummer = 1, Und zweitens - ein Pointer hat keinen eigenen Wert, stimmt das? MfG |
Ein Pointer ist nur ein Zeiger auf eine Speicheradresse, der Wert eines Pointers ist also sozusagen die Adresse auf die er Zeigt.
Zu dem "um 12 Einheiten größer": Du fragst nirgends den Speicherplatz ab!? |
Las das mal bitte abspielen. Wenn die Speicheradresse um 12 verschoben ist, heißt das nicht dann, dass die um diese Größe größer ist?
printf("4 %d\n", &pointer); printf("5 %d\n", pointer); |
Also printf("4 %d\n", &pointer); gibt dir die Adresse von "pointer" als Integer aus und printf("5 %d\n", pointer); gibt dir die Adresse von "nummer" (also die Adresse von dem Element auf das "pointer" zeigt) als Integer aus.
Also einmal alles zusammengefasst: pointer -> gibt dir die Adresse auf die "pointer" zeigt (in deinem Fall die Adresse wo "nummer" im Speicher liegt &pointer -> gibt dir die Adresse wo "pointer" liegt (bzw. die Adresse wo der Wert von "pointer" gespeichert ist und somit die Adresse wo die Adresse hinterlegt ist, auf die "pointer" zeigt) *pointer -> Gibt dir den Wert zurück, auf den "pointer" zeigt (in deinem Fall den Wert von "nummer") &pointer funktioniert nicht anders wie deine Zuweisung pointer = &nummer; ... Da gibst du "pointer" die Adresse von "nummer" ... mit &pointer bekommst du eben die Adresse von "pointer" ... denn auch ein Pointer hat eine Adresse und man kann eben auch Pointer auf Pointer machen (int **pointerPointer; ). |
Zitat:
Du kannst die Größe einer Varibale mit sizeof ermitteln. Auf 32 Bit Rechnern benötigen int-Variablen sowie Pointer stets 4 Byte, auf 64 Bit Rechnern (und mit einem 64 Bit Compiler compiliert) benötigen diese 8 Byte, |
Okay, ich danke euch ;)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:28 Uhr. |
Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.