Ciao e bentornato. In questa lezione, voglio fornire una dimostrazione
o una soluzione della nostra sfida precedente che ti ha fatto familiarizzare con
la sintassi del puntatore, il concetto di puntatore, l'assegnazione
di un indirizzo a un puntatore e quindi la visualizzazione dell'output per un puntatore.
Quindi portiamo in primo piano i blocchi di codice e creeremo un nuovo progetto
un nuovo progetto c che si chiamerà semplicemente basi del puntatore, perché farà le basi dei puntatori.
Quindi sappiamo come fare tutto questo. Selezioneremo l'applicazione console,
assicuriamoci di avere ce chiameremo semplicemente
questo puntatore.
Questo concetto di puntatore è davvero molto importante.
Quindi partiamo lentamente e proseguiamo da lì.
Quindi eccoci qui. Qui abbiamo il nostro principale.
Ora tutto ciò che vogliamo fare è creare una
variabile intera e poi una variabile puntatore.
E vogliamo inizializzare entrambi.
Quindi la prima cosa che farò è creare una
variabile intera e chiamarla semplicemente numero o num.
E lo inizializzerò a 150.
Per creare una variabile puntatore, deve essere dello stesso tipo.
Per creare un puntatore, tutto ciò che devi fare è fare il tipo di dati e
poi l'asterisco nella dichiarazione e poi chiameremo questo pnum per il numero del puntatore.
Di solito, si desidera avviare le variabili che sono puntatori con il prefisso p.
Ed è sempre una buona idea, quando crei i tuoi puntatori, inizializzarli su null.
Null è una parola chiave speciale che sta dicendo che
il puntatore non punta a nulla.
Una volta inizializzate entrambe le
nostre variabili, il nostro num intero e il nostro puntatore num intero,
vogliamo quindi assegnare qualcosa al nostro puntatore.
Perché in questo momento il nostro puntatore non punta nulla in memoria.
E vuoi assicurarti che qualunque cosa assegni il tuo puntatore
a quello, che abbia effettivamente una posizione di memoria
per esso, memoria allocata.
Quindi in questo caso, se vogliamo assegnargli num, num è
un numero intero sulla riga 6 che ha memoria allocata per esso.
C allocherà automaticamente la memoria per qualsiasi
dichiarazione di variabile.
Anche questo puntatore sulla riga 7 ha memoria allocata solo per memorizzare il puntatore.
Non significa necessariamente che abbia memoria allocata per ciò a cui punta.
Quindi per firmare pnum, un valore di
un indirizzo, tutto ciò che dobbiamo fare è dire pnum
è uguale a e commerciale, che
è l'indirizzo dell'operatore e
vogliamo assegnargli l'indirizzo di num.
Num ha una memoria già allocata per esso e l'abbiamo dichiarata.
Quindi la riga 9 assegna solo l'indirizzo di num a un puntatore.
E 'così semplice.
Ora, quando crei un puntatore e gli
assegni un indirizzo, potresti anche creare la tua memoria dinamica
e assegnarla. Ma questo è per un altro esercizio. In questo caso,
abbiamo già creato la nostra variabile. Indicheremo il valore di quella variabile.
Dobbiamo assegnare l'indirizzo di num.
Ora, dopo che abbiamo stampato, abbiamo svolto i nostri compiti, abbiamo inizializzato tutto.
Ora vogliamo solo stampare alcune informazioni.
Quindi useremo printf e dirò prima che voglio
stampare il valore dell'indirizzo pnum.
Ora qual è il valore pnum per l'indirizzo,
ma l'indirizzo pnum. E qui possiamo effettivamente
dire l'indirizzo di
un puntatore, quindi diremo p. E poi tutto quello che dobbiamo fare
è inserire qui, dobbiamo inserire l'indirizzo del nostro puntatore.
Quindi qui diremmo indirizzo di pnum.
E cosa ci darà, questo ci darà l'indirizzo del puntatore che
stava allocando la memoria. Non è
il valore del valore del puntatore. Anche il valore del puntatore sarà un indirizzo, sarà l'indirizzo di num.
Quindi qui prima stampiamo anche num. Quindi qui
stiamo solo per stampare num address is.
E ancora, vogliamo stampare un indirizzo diciamo percentuale p.
E poi diremo l'indirizzo
dell'indirizzo di num.
E l'indirizzo di num dovrebbe anche corrispondere al valore di pnum.
L'indirizzo di pnum sarà diverso perché è il puntatore in memoria.
Quindi stamperemo il valore di pnum
o dovrei dire l'indirizzo di pnum.
E poi
stamperemo anche il valore del pnum.
variabile e questo sarà anche un indirizzo, e questo
sarà solo pnum.
E poi l'ultima cosa che vogliamo mostrare è
che vogliamo mostrare quale sia il valore a cui punta il pnum.
Quindi il valore di ciò a cui punta pnum.
E questo in realtà sarà il tipo a cui
punta è un numero intero. Quindi questa sarebbe la percentuale d.
E aggiungiamo effettivamente alcuni feed di riga in modo da poter leggere questo.
E ciò che sta effettivamente indicando nel modo in cui ottieni quel valore è l'operatore di riferimento indiretto.
Quindi fai l'asterisco e poi il nome del puntatore.
E questo ti dirà a cosa punta il valore che dovrebbe essere 150.
Quindi, solo per ribadire qui alla riga
11, stiamo stampando l'indirizzo di num.
Sarà un numero o un numero esadecimale.
Quindi, alla riga 12, stampiamo l'indirizzo di pnum, che
è stato appena allocato sulla riga
sette perché devi memorizzare il puntatore pnum da qualche parte.
Quindi stampiamo il valore del puntatore che è solo l'indirizzo di num.
E quando stampiamo l'indirizzo di pnum, dobbiamo usare la e commerciale.
Quindi stampiamo il valore di ciò a cui
punta pnum che sta dereferenziando usando l'operatore di riferimento indiretto.
Quindi ora andiamo avanti e
costruiamo questo ed eseguiamolo e dovremmo vedere tutti questi valori.
Quindi il
num indirizzo solo questo numero in memoria è 0060FF0C.
L'indirizzo di pnum sarà
qualcosa di diverso, 0060FF08.
Il valore di pnum che è l'indirizzo di num dovrebbe corrispondere alla prima
riga e fa FFOC.
E poi il valore di ciò a cui punta pnum è 150.
Quindi un puntatore può davvero avere tre valori. Il suo indirizzo, il
valore del puntatore che è un altro indirizzo
e quindi il valore di ciò a cui punta quell'indirizzo.
E ancora, e commerciale ti dà sempre l'indirizzo
in memoria.
Pnum contiene un indirizzo. Puoi stamparlo semplicemente
pronunciando il nome del puntatore.
E poi per ottenere il valore a cui punta, usi l'operatore di riferimento
indiretto, l'asterisco e questo ti darà quel valore che è 150.
Quindi queste sono le basi dei puntatori, per familiarizzare con la sintassi.
Quando utilizzare l'indirizzo dell'operatore e quando utilizzare l'operatore di riferimento indiretto
e quindi provare a spiegare solo questo concetto di un puntatore e come un puntatore contiene
un valore di un indirizzo, il valore di un puntatore è un indirizzo.
Quindi gioca con questo, comprendi
questa sintassi, i puntatori sono concetti davvero importanti. Grazie.