Ciao e bentornato.
Voglio parlare un po 'dei puntatori sul vuoto in questa conferenza.
Sappiamo cos'è void perché abbiamo usato questa parola
chiave quando abbiamo parlato di funzioni.
Principalmente se non vogliamo restituire alcun dato da una funzione, usiamo il
vuoto come parte della firma della funzione. E quando usiamo il puntatore per evitare, cosa significa?
Bene, il nome del tipo void significa assenza di qualsiasi tipo.
Quindi un puntatore di tipo void star può contenere l'indirizzo di un elemento di dati di qualsiasi
tipo, quindi ha molta flessibilità.
Se non sai cosa memorizzerai come indicatore, puoi dire void
star, piuttosto ingegnoso. Di solito viene utilizzato nelle funzioni per i parametri delle funzioni.
Quindi void star viene spesso utilizzato come tipo di parametro o
tipo di ritorno
con funzioni, che gestiscono i dati in modo indipendente dal tipo.
Quindi puoi consentire alla tua funzione di essere più flessibile
se richiede puntatori a stella vuoti.
Fondamentalmente significa che la tua funzione
può richiedere più di un tipo di variabile
tranne che non è completamente flessibile perché devi lanciarla in qualche modo quando la dereferenzi.
Quindi qualsiasi tipo di puntatore può essere passato come valore di tipo void, qualsiasi tipo.
Il puntatore void non sa a quale tipo di oggetto sta puntando.
Quindi non puoi dereferenziarlo direttamente, ed
è qui che arriva il vero singhiozzo con la stella del vuoto.
È ottimo per una lunga flessibilità per diversi tipi di dati, ma puoi usarlo
solo se conosci il tipo di dati.
Quindi devi fornire un cast
esplicito al puntatore quando lo dereferenzi.
L'indirizzo di una variabile di tipo int può essere memorizzato in una variabile pointer di
tipo void perché void star significa che qualsiasi tipo di dato può essere memorizzato al suo interno.
Quindi, quando vuoi accedere al valore dell'intervallo all'indirizzo memorizzato
nel puntatore a stella void, devi prima lanciarlo a un puntatore
di tipo int.
In questo esempio, vedremo come usi il puntatore a stella vuoto.
Abbiamo tre variabili che abbiamo definito, un intero e un float e un carattere.
Ora creeremo un puntatore a stella vuoto.
Poiché il puntatore è di tipo void, possiamo assegnargli l'indirizzo di
i che è un int. Possiamo assegnargli l'indirizzo di
f, che è un float e possiamo assegnargli l'indirizzo di carattere
o ch che è un carattere.
L'unico problema è quando si dereferenzia, devi conoscere quel tipo, ma qui vedi ancora il vantaggio.
Il vantaggio qui è che dobbiamo creare solo un tipo di
variabile e possiamo memorizzare più indirizzi diversi in esso.
Ma ogni volta che vuoi usarlo, devi usarlo in star.
E vedrai qui quando stampiamo i dati, che la stella in
sta lanciando il puntatore e poi lo stiamo de-referenziando, la stella fuori dalle
parentesi int sta dereferenziando. Quindi stamperà il valore
a cui punta il puntatore
v, ma prima lo casterà al tipo giusto.
Quindi in tutti e tre questi puntatori v, stamperà per la formica che stamperà 10.
Per il galleggiante, ne tirerà fuori 2. 34.
E per ch, char, stamperà k.
Vedremo il puntatore void utilizzato maggiormente nei parametri di
funzione, come ho detto, nei tipi restituiti.
E questo è davvero il valore quando si tratta e si utilizza solo
un puntatore a stella vuoto in una dichiarazione e
si assegnano molti tipi di dati diversi. Grazie.