Compréhension des Pointeurs Void
Lorsque vous avez vu void pour la première fois, il s'agissait de fonctions qui ne renvoient rien. Il est impossible de créer une variable de type void, mais il est possible de déclarer un pointeur void* qui contient l'adresse de n'importe quel type de donnée.
Si vous avez réalisé les exercices sur les pointeurs dans cette section, vous savez que tous les pointeurs occupent 8 octets. Un pointeur void* ne fait pas exception.
Un pointeur void* n'est associé à aucun type de donnée spécifique. Cette flexibilité permet de stocker l'adresse de n'importe quel type de donnée. Cependant, il y a une limite : il est impossible de déréférencer un pointeur void*.
Cette limitation provient de la même raison pour laquelle il n'est pas possible de déclarer des variables de type void. Effectuer une conversion de type explicite !
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; }
Félicitations pour avoir terminé les bases de la programmation en C ! Pour progresser davantage, explorer des sujets tels que les macros, les algorithmes de tri et les structures de données. L'apprentissage d'une distribution Linux vous aidera également à évoluer en tant que programmeur C compétent.
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion
Awesome!
Completion rate improved to 2.63
Compréhension des Pointeurs Void
Glissez pour afficher le menu
Lorsque vous avez vu void pour la première fois, il s'agissait de fonctions qui ne renvoient rien. Il est impossible de créer une variable de type void, mais il est possible de déclarer un pointeur void* qui contient l'adresse de n'importe quel type de donnée.
Si vous avez réalisé les exercices sur les pointeurs dans cette section, vous savez que tous les pointeurs occupent 8 octets. Un pointeur void* ne fait pas exception.
Un pointeur void* n'est associé à aucun type de donnée spécifique. Cette flexibilité permet de stocker l'adresse de n'importe quel type de donnée. Cependant, il y a une limite : il est impossible de déréférencer un pointeur void*.
Cette limitation provient de la même raison pour laquelle il n'est pas possible de déclarer des variables de type void. Effectuer une conversion de type explicite !
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; }
Félicitations pour avoir terminé les bases de la programmation en C ! Pour progresser davantage, explorer des sujets tels que les macros, les algorithmes de tri et les structures de données. L'apprentissage d'une distribution Linux vous aidera également à évoluer en tant que programmeur C compétent.
Merci pour vos commentaires !