指標與引用的區別

2021-09-09 06:22:43 字數 711 閱讀 3131

思考:c有了指標,c++中為什麼引入了引用概念,引用相比於指標的優勢在**,或者兩者之間還存在什麼無法替代的侷限性。

引用:在引用給出的概念上講引用只是變數的別名,不占用記憶體,對引用做出改變會直接修改被引用的變數值,我們在平時使用這個介面時這樣理解即可。而在實際的彙編**中顯示,引用的實現方式與指標類似,也就會占用記憶體,但加入了常性,故在開闢記憶體的時候需要賦值。(在佔不占用記憶體問題上,我認同對引用給出的概念並不影響編譯器如何去實現,優化它)

引用與指標的區別:

1、指標是乙個實體,需要分配記憶體空間。引用只是變數的別名,不需要分配記憶體空間。

2、引用在定義的時候必須進行初始化,並且不能夠再次改變的指向。指標在定義的時候不一定要初始化。

3、有多級指標,但是沒有多級引用,只能有一級引用

4、指標和引用的+1能力不一樣。(指標是指向下乙個型別空間,引用時被引用的變數值加1)

5、sizeof 引用得到的是所指向的變數(物件)的大小,而sizeof 指標得到的是指標本身的大小。

6、引用訪問乙個變數是直接訪問,而指標訪問乙個變數是間接訪問

7、函式傳參的時候指標是值傳遞,引用是引用傳遞。

8、作為函式返回值的時候都可作為左值被改變。

引用適用場景: 在c++運算子過載和幾種類初始化函式中有很重要作用。

引用與指標的區別

1.初始化要求不同。引用在建立的同時必須初始化,而指標在定義的時候不必初始化,可以在定義後面的任何地方重新賦值 2.可修改性不同。引用一旦被初始化,就不能被另乙個物件引用了,而指標在任何時候都可以指向另乙個物件 3.不存在null引用。引用不能使用指向空值的引用,必須指向某物件 而指標可以是null...

指標與引用的區別

指標與引用看上去完全不同 指標用操作符 和 引用使用操作符 但是它們似乎有相同的功能。指標與引用都是讓你間接引用其他物件。你如何決定在什麼時候使用指標,在什麼時候使用引用呢?首先,要認識到在任何情況下都不能使用指向空值的引用。乙個引用必須總是指向某些物件。因此如果你使用乙個變數並讓它指向乙個物件,但...

指標與引用的區別

指標與引用看上去完全不同 指標用操作符 和 引用使用操作符 但是它們似乎有相同的功能。指標與引用都是讓你間接引用其他物件。你如何決定在什麼時候使用指標,在什麼時候使用引用呢?首先,要認識到在任何情況下都不能用指向空值的引用。乙個引用必須總是指向某些物件。因此如果你使用乙個變數並讓它指向乙個物件,但是...