引用和指標的區別

2021-08-19 19:00:28 字數 588 閱讀 1726

學習程式設計中經常遇到的乙個問題,引用和指標的區別是什麼?

我在查閱了一翻後,稍微總結了下,具體如下 :

首先指標和引用都是讓你間接引用其他物件,但是指標可以為空,引用不能為空。

即乙個引用必須總是指向某些物件,而指標可以賦空值(最好不要)。

指標和引用的另乙個不同是,指標可以被重新賦值以指向另乙個不同的物件,但是引用則總是指向在初始化時被指定的物件,以後不能改變。

下面的例子說明

string s1(「nancy」);

string s2(「clancy」);

string& rs =s1; 

//rs引用s1

string *ps =&s1; 

//ps指向s1

rs =s2; 

//rs仍舊引用s1,但是s1的值現在是」clancy」

ps =&s2; 

//ps 現在指向s2,s1沒有改變

使用注意事項

使用指標應考慮存在不指向任何物件的可能,以及需要能夠在不同的時刻指向不同的物件。

如果總是指向乙個物件並且一旦指向乙個物件後就不會改變指向,那麼應該使用引用。

指標引用和引用指標的區別

c 在傳參的過程中,指標 和指標引用 是有區別的。雖然,我們往往可以通過傳指標然後通過間址訪問來修改指標所指向物件的值,同樣,通過引用也可以直接修改物件的值。但是,當傳指標的時候有乙個問題,就是,我們雖然可以通過指標來修改指標所指向物件的值,但是我們沒有不能直接修改指標的內容 也就是指標變數存放的位...

傳指標和傳指標引用的區別 指標和引用的區別(本質)

指標傳遞引數本質上是值傳遞的方式,它所傳遞的是乙個位址值。值傳遞過程中,被調函式的形式引數作為被調函式的區域性變數處理,即在棧中開闢了記憶體空間以存放由主調函式放進來的實參的值,從而成為了實參的乙個副本。值傳遞的特點是被調函式對形式引數的任何操作都是作為區域性變數進行,不會影響主調函式的實參變數的值...

傳指標和傳指標引用的區別 指標和引用的區別(本質)

指標傳遞引數本質上是值傳遞的方式,它所傳遞的是乙個位址值。值傳遞過程中,被調函式的形式引數作為被調函式的區域性變數處理,即在棧中開闢了記憶體空間以存放由主調函式放進來的實參的值,從而成為了實參的乙個副本。值傳遞的特點是被調函式對形式引數的任何操作都是作為區域性變數進行,不會影響主調函式的實參變數的值...