指標可以作為引數傳遞直接修改所指的變數的值,如下**:
void change(int *p)
int main()
指標傳遞實際上也是值傳遞,傳遞的值便是指標的位址,執行* p = 20後,雖然傳遞的是乙個位址的副本,但是副本的值就是變數的位址,執行後,所指向的位址的值變成了20,達到了修改變數值的目的。所以,當需要修改指標所指向的物件時,這種傳遞方式就有問題了,因為修改的是指標的副本,所以原本指標所指向的物件並沒有發生改變,這個效果就像普通的swap函式一樣,如下**:
int m = 30;
void change(int *p)
int main()
如果**改為如下:
int m = 30;
void change(int *&p)
int main()
深入理解c 指標的指標和指標的引用
展示一下使用指標的指標和指標的引用修改傳遞給方法的指標,以便更好的使用它。這裡說的指標的指標不是乙個二維陣列 為什麼需要使用它們 當我們把乙個指標做為引數傳乙個方法時,其實是把指標的複本傳遞給了方法,也可以說傳遞指標是指標的值傳遞。如果我們在方法內部修改指標會出現問題,在方法裡做修改只是修改的指標的...
引用與指標的理解
指標變數用於儲存資料的位址,使用方法如 int i 0 int p p i 此時,p 的值為i 的位址,p為位址所儲存的數值也就是 i的值,i的值為位址所存放的值也就是 p的值,i的值為 i p i p i 引用為c 才有的功能,引用變數不占用記憶體,可理解為函式的別名,使用方法如 int i 0 ...
C 中的指標 引用 指標引用
在c 指標的用處很大,可以快讀的訪問位址空間,而且本身不佔太大記憶體。指標操作在引數傳遞的時候非常方便。既可以作為傳入引數,又可以作為返回值。但是可不可作為函式的傳出引數呢?下面通過乙個例子來說明。教室裡面包含多個老師,每個老師管理多個學生 學生類 pragma once include class...