Verständnis der Void-Zeiger
Als Sie void zum ersten Mal gesehen haben, bezog es sich auf Funktionen, die nichts zurückgeben. Sie können keine Variable vom Typ void erstellen, aber Sie können einen void*-Zeiger deklarieren, der die Adresse eines beliebigen Datentyps speichert.
Wenn Sie die Zeigerübungen in diesem Abschnitt bearbeitet haben, wissen Sie, dass alle Zeiger 8 Byte belegen. Ein void*-Zeiger ist dabei keine Ausnahme.
Ein void*-Zeiger ist nicht an einen bestimmten Datentyp gebunden. Diese Flexibilität ermöglicht es, die Adresse eines beliebigen Datentyps darin zu speichern. Es gibt jedoch eine Einschränkung: Sie können einen void*-Zeiger nicht dereferenzieren.
Diese Einschränkung ergibt sich aus demselben Grund, warum Variablen vom Typ void nicht deklariert werden können. Eine explizite Typumwandlung durchführen!
Main.c
1234567891011121314151617181920#include <stdio.h> int main() { char c = 'F'; int i = 100; double d = 3.15; void* pV; pV = &c; printf("%c \n", *((char*)pV)); pV = &i; printf("%d \n", *((int*)pV)); pV = &d; printf("%.2f \n", *((double*)pV)); return 0; }
Herzlichen Glückwunsch zum Abschluss der C-Programmiergrundlagen! Für weiterführende Kenntnisse empfiehlt sich die Beschäftigung mit Themen wie Makros, Sortieralgorithmen und Datenstrukturen. Das Erlernen einer Linux-Distribution unterstützt zudem die Entwicklung als kompetente:r C-Programmierer:in.
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
Can you explain why you can't dereference a void pointer?
What are some common uses for void pointers in C?
Can you give examples of how to cast a void pointer to another type?
Awesome!
Completion rate improved to 2.63
Verständnis der Void-Zeiger
Swipe um das Menü anzuzeigen
Als Sie void zum ersten Mal gesehen haben, bezog es sich auf Funktionen, die nichts zurückgeben. Sie können keine Variable vom Typ void erstellen, aber Sie können einen void*-Zeiger deklarieren, der die Adresse eines beliebigen Datentyps speichert.
Wenn Sie die Zeigerübungen in diesem Abschnitt bearbeitet haben, wissen Sie, dass alle Zeiger 8 Byte belegen. Ein void*-Zeiger ist dabei keine Ausnahme.
Ein void*-Zeiger ist nicht an einen bestimmten Datentyp gebunden. Diese Flexibilität ermöglicht es, die Adresse eines beliebigen Datentyps darin zu speichern. Es gibt jedoch eine Einschränkung: Sie können einen void*-Zeiger nicht dereferenzieren.
Diese Einschränkung ergibt sich aus demselben Grund, warum Variablen vom Typ void nicht deklariert werden können. Eine explizite Typumwandlung durchführen!
Main.c
1234567891011121314151617181920#include <stdio.h> int main() { char c = 'F'; int i = 100; double d = 3.15; void* pV; pV = &c; printf("%c \n", *((char*)pV)); pV = &i; printf("%d \n", *((int*)pV)); pV = &d; printf("%.2f \n", *((double*)pV)); return 0; }
Herzlichen Glückwunsch zum Abschluss der C-Programmiergrundlagen! Für weiterführende Kenntnisse empfiehlt sich die Beschäftigung mit Themen wie Makros, Sortieralgorithmen und Datenstrukturen. Das Erlernen einer Linux-Distribution unterstützt zudem die Entwicklung als kompetente:r C-Programmierer:in.
Danke für Ihr Feedback!