引用指標混合使用

2021-09-05 11:05:12 字數 726 閱讀 3676

int value = 3;

void func(int **p)

void func(int *&p)

int _tmain(int argc, _tchar* argv)

{#if 0

int n = 2;

int *pn = &n;

cout << *pn << endl;

func(pn);

cout << *pn << endl;

#else

int n = 1;

int *pn = &n;

cout << *pn << endl;

func(&pn);

cout << *pn

引用執行結果: 

int *p 本質為位址的位址,也就是說,p指向了乙個記憶體空間,裡面放了乙個位址。如果我們通過值傳遞,將直接傳遞給函式,那麼內部的副本不會改變p本身。類似於在函式外部是int *p,在內部是int * tmpp,兩者裡面放的內容是一樣的,也就是真是的位址,但是兩者本身的位址是不一樣的,對tmpp的修改不會作用到p上。 使用指標的指標,可以做到這點。int **p;在函式內部首先解引用,實際上就得到了p的真是位址,從而可以對p本身進行修改。

指標的指標執行結果:

c const的使用(引用,指標)

1 const 物件,一旦建立後,值就不能在改變,所以要對const物件進行初始化 const int i get size 初始值可以是任意複雜的表示式 const int j 42 對 const int k 錯 2 例 const int bufsize 512 編譯器會在編譯過程中,把所有用...

何時使用引用和指標

但是,請等一下 你懷疑地問,這樣的 會產生什麼樣的後果?char pc 0 設定指標為空值 char rc pc 讓引用指向空值這是非常有害的,毫無疑問。結果將是不確定的 編譯器能產生一些輸出,導致任何事情都有可能發生 因為引用肯定會指向乙個物件,引用應被初始化。string rs 錯誤,引用必須被...

typedef 引用 指標引用

typedef 宣告新的型別名來代替原有的型別名,比如 typedef int integer 相當於用intger來代表int型別,習慣上把用typedef宣告的型別用大寫字母表示。引用 引用說白了就是為物件另外起了乙個名字,定義了乙個引用之後所有的操作都是在引用 繫結的物件 上進行的。定義方式 ...