SPEAKER 1: Si scopre che possiamo scambiare con successo i valori in due variabili di passarli in un funzionamento non per valore o per la copia, ma per riferimento o per i loro indirizzi. In altre parole, abbiamo bisogno di far leva qualcosa conosciuto come un puntatore. Un puntatore, in realtà, è solo l' l'indirizzo di una variabile. E così, se forniamo una funzione chiamata, per esempio, scambiare con l'indirizzo di una variabile e l'indirizzo di un'altra variabile, swap dovrebbe avere il potere di andare a ciascuna di tali indirizzi ed effettivamente cambiare la valori che ci sono. Vediamo questo nel contesto. Facciamo reimplementare di swap come segue. In primo luogo, cambiamo un non essere un int ma per essere un puntatore ad un int o l' indirizzo di un int. Allora facciamolo lo stesso per b, cambiando da un int sia un puntatore a un int o l'indirizzo di un int. Poi all'interno di swap, diamo ancora dichiarare tmp in modo che abbiamo un posto provvisorio per un valore di. Ma una di valore non è un sé, perché, di nuovo, una è ora l'indirizzo di qualche int. Quindi, se vogliamo andare a questo indirizzo e ottenere int a quell'indirizzo, abbiamo dereference questo puntatore, anche a titolo di l'operatore stella, scrivendo una stella. Poi, io non voglio cambiare il valore di a. Voglio cambiare il valore a, tenendo conto, di nuovo, che a è un indirizzo. Quindi, per farlo, ho di nuovo bisogno dire una stella ottiene. Ed ora voglio mettere in valore che è in B, non il valore di b, che è anche un indirizzo. Quindi, ripeto, stella b. Poi, nella mia ultima riga, ho bisogno di sovrascrivere ciò che è all'indirizzo b con quello che era a casa di una posizione originale. Per fare questo, faccio stella b ottiene tmp. Ora, alla fine della giornata, questa funzione è ancora solo tre righe di codice. Ma perché è la manipolazione di valori mediante il loro indirizzo e non sono valori grezzi che sono state approvate in funzione, io sostengo che la swap è ora il potere di cambiare i valori che sono passati in via loro indirizzi. Ma ho bisogno di fare ancora un cambio. Non posso più passare xey stessi. Ho bisogno di passare gli indirizzi di x ed y. E per farlo, ho bisogno di qualche po ' diversi top notazione up. Voglio scambiare x e y passando l'indirizzo di x, indicata con commerciale x, e l'indirizzo della y, indicato da commerciale a. Allo stesso modo, sulla parte superiore ora devo cambiare il prototipo della funzione di corrispondere il cambiamento che ho fatto, in modo che a è, ancora una volta, un puntatore ad un int. b è, ancora una volta, un puntatore ad un int. E ora posso salvare il mio file. E cerchiamo di ricompilare ed eseguirlo. Fai puntino di swap barra di swap. E questa volta, x ed y sono infatti ora scambiato in modo tale che i loro valori non sono 1 e 2, ma 2 e 1.