Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
#include <stdio.h> #include <stdlib.h> main () { int zahl = 8; int *zeiger; *zeiger = zahl; int **zeig = &zeiger; printf("\nPointer auf Variablen\n\n"); printf("Integer\n"); printf("zeiger: %d\n", zeiger); printf("*zeiger: %d\n", *zeiger); printf("&zeiger: %d\n\n", &zeiger); printf("Pointer\n"); printf("zeiger: %p\n", zeiger); printf("*zeiger: %p\n", *zeiger); printf("&zeiger: %p\n\n\n", &zeiger); printf("Pointer auf Pointer\n\n"); printf("Integer\n"); printf("zeig: %d\n", zeig); printf("*zeig: %d\n", *zeig); printf("**zeig: %d\n", **zeig); printf("&zeig: %d\n", &zeig); printf("Pointer\n"); printf("zeig: %p\n", zeig); printf("*zeig: %p\n", *zeig); printf("**zeig: %p\n", **zeig); printf("&zeig: %p\n", &zeig); system("PAUSE"); return 0; } |
Quellcode |
|
1 2 3 4 5 6 |
Pointer auf Variablen Integerzeiger: 2686824*zeiger: 8&zeiger: 2686696 Pointerzeiger: 0028FF68*zeiger: 00000008&zeiger: 0028FEE8 Pointer auf Pointer Integerzeig: 2686696*zeig: 2686824**zeig: 8&zeig: 2686692Pointerzeig: 0028FEE8*zeig: 0028FF68**zeig: 00000008&zeig: 0028FEE4 |
Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »dot« (03.01.2014, 01:50)
ich komme aus der Java-Welt, da existiert dieses ganze Zeiger-Ding nicht - Java hat nur Referenzen
C-/C++-Quelltext
1 main ()
C-/C++-Quelltext
1 2 3 4 int zahl = 8; int *zeiger; *zeiger = zahl; // Fehler: zeiger ist uninitialisiert, dass das nicht crashed ist pures Glück. int **zeig = &zeiger; // Ok: zeig zeigt nun auf zeiger
C-/C++-Quelltext
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 printf("\nPointer auf Variablen\n\n"); printf("Integer\n"); printf("zeiger: %d\n", zeiger); // Fehler: Du übergibst an printf einen Pointer, dein Format-String sagt aber, dass es sich um einen Integer handelt. Dass das nicht crashed, ist pures Glück. printf("*zeiger: %d\n", *zeiger); // Ok printf("&zeiger: %d\n\n", &zeiger); // Selber Fehler wie vorhin: &zeiger ist ein Pointer und kein Integer. printf("Pointer\n"); printf("zeiger: %p\n", zeiger); // Hier ist es nun richtig. printf("*zeiger: %p\n", *zeiger); // Dafür stimmt das nun nicht, *zeiger ist ein Integer und kein Pointer, dein Format-String sagt aber, dass es sich um einen Pointer handelt. Dass das nicht crashed, ist pures Glück. printf("&zeiger: %p\n\n\n", &zeiger); // Ok, &zeiger ist ein Pointer. printf("Pointer auf Pointer\n\n"); printf("Integer\n"); printf("zeig: %d\n", zeig); // Wieder selber Fehler, zeig ist ein Pointer und kein Integer. printf("*zeig: %d\n", *zeig); // Fehler: *zeig ist ebenfalls ein Pointer und kein Integer. printf("**zeig: %d\n", **zeig); // Ok, **zeig ist ein Integer. printf("&zeig: %d\n", &zeig); // Fehler: &zeig ist ein Pointer. printf("Pointer\n"); printf("zeig: %p\n", zeig); // Ok printf("*zeig: %p\n", *zeig); // Ok printf("**zeig: %p\n", **zeig); // Fehler: **zeig ist ein Integer, kein Pointer. Dass das nicht crashed, ist pures Glück. printf("&zeig: %p\n", &zeig); // OK
C-/C++-Quelltext
1system("PAUSE");
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »dot« (03.01.2014, 02:34)
Administrator
Und warum kann ich den Zeiger nicht später erst initialisieren?
So und nun wollte ich nochmal nach gewissen Unterschieden fragen bei
*zeig und zeig
und eigentlich müsste ja "zeiger" und "&zeiger" auch unterschiedlich sein
dann gibt es ja noch den -> Operator der auch irgendwie zum zuweisen von Zeigern benutzt wird - wann ich diesen benutze weiß ich leider auch nicht genau.
Werbeanzeige