Comprensione dei Puntatori Void
Quando hai visto per la prima volta void, si riferiva a funzioni che non restituiscono valore. Non è possibile creare una variabile di tipo void, ma è possibile dichiarare un puntatore void* che memorizza l'indirizzo di qualsiasi tipo di dato.
Se hai completato gli esercizi sui puntatori in questa sezione, saprai che tutti i puntatori occupano 8 byte. Un puntatore void* non fa eccezione.
Un puntatore void* non è legato a nessun tipo di dato specifico. Questa flessibilità consente di memorizzare in esso l'indirizzo di qualsiasi tipo di dato. Tuttavia, c'è una limitazione: non è possibile dereferenziare un puntatore void*.
Questa limitazione deriva dallo stesso motivo per cui non è possibile dichiarare variabili di tipo void. Effettuare una conversione di tipo esplicita!
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; }
Congratulazioni per aver completato le basi della programmazione in C! Per progredire ulteriormente, esplorare argomenti come macro, algoritmi di ordinamento e strutture dati. Imparare una distribuzione Linux aiuterà anche a crescere come programmatore C competente.
Grazie per i tuoi commenti!
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione
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
Comprensione dei Puntatori Void
Scorri per mostrare il menu
Quando hai visto per la prima volta void, si riferiva a funzioni che non restituiscono valore. Non è possibile creare una variabile di tipo void, ma è possibile dichiarare un puntatore void* che memorizza l'indirizzo di qualsiasi tipo di dato.
Se hai completato gli esercizi sui puntatori in questa sezione, saprai che tutti i puntatori occupano 8 byte. Un puntatore void* non fa eccezione.
Un puntatore void* non è legato a nessun tipo di dato specifico. Questa flessibilità consente di memorizzare in esso l'indirizzo di qualsiasi tipo di dato. Tuttavia, c'è una limitazione: non è possibile dereferenziare un puntatore void*.
Questa limitazione deriva dallo stesso motivo per cui non è possibile dichiarare variabili di tipo void. Effettuare una conversione di tipo esplicita!
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; }
Congratulazioni per aver completato le basi della programmazione in C! Per progredire ulteriormente, esplorare argomenti come macro, algoritmi di ordinamento e strutture dati. Imparare una distribuzione Linux aiuterà anche a crescere come programmatore C competente.
Grazie per i tuoi commenti!