首頁  >  文章  >  後端開發  >  c++引用和指標的差別是什麼?

c++引用和指標的差別是什麼?

青灯夜游
青灯夜游原創
2020-11-09 10:15:325128瀏覽

區別:1、指標有自己的一塊空間,而引用只是一個別名;2、指標在使用中可以指向其它對象,但是引用只能是一個對象的引用,不能被改變;3、指標可以有多級指標(例**p),而引用至於一級;4、指標和引用使用「 」運算子的意義不一樣。

c++引用和指標的差別是什麼?

相關推薦:C 影片教學

##1、變數

首先最重要的,variable的定義,當你申明一個變數的時候,電腦會將指定的一塊記憶體空間和變數名稱進行綁定;這個定義很簡單,但其實很抽象,例如:int x = 5; 這是一句最簡單的變數賦值語句了, 將5賦值於名字叫做x的記憶體空間,其本質是將值5賦值到一塊記憶體空間,而這個記憶體空間名叫做x。

c++引用和指標的差別是什麼?

變數在記憶體中的操作其實是需要經過2個步驟的:

  • 找出與變數名稱相對應的內存地址。

  • 根據找到的位址,取出該位址對應的記憶體空間裡面的值進行操作。

2、指標

指標的特殊之處在於:指標變數相對應的記憶體空間儲存的值恰好是某個記憶體位址。這也是指標變數區別去其他變數的特徵之一。例如某個指標的定義如下:

int x = 5;
int *ptr = &x;

ptr即是一個指正變數名。透過指標取得這個指標所指向的記憶體中的值稱為解引用。空指標是不能解引用的。

指標記憶體空間的表示如下:

c++引用和指標的差別是什麼?

#3、引用

引用(reference)在C 中也是常被用到,尤其是當函數參數的時候,需要在函數內部修改更新函數外部的值的時候。首先我們必須先明確的一點就是:引用是一種特殊的指標。

引用是一個指向其它物件的常數指針,它保存著所指對象的儲存位址。並且使用的時候會自動解引用,而不需要像使用指標一樣明確提領。

例如引用的定義如下:

int x = 5;
int &y = x;

4.指標和引用的區別總結

  • 指標有自己的一塊空間,而引用只是一個別名;

  • 使用sizeof看一個指標的大小是4,而引用則是被引用物件的大小;

  • 指標可以初始化為NULL,而引用必須被初始化且必須是已有物件的參考;

  • 當參數傳遞時,指標需要被解引用才可以對物件進行操作,而直接對引用的修改都會改變引用所指向的對象;

  • 指針在使用中可以指向其它對象,但是引用只能是一個對象的引用,不能被改變;

  • 指標可以有多級指標(**p),而引用至於一級;

  • 指標和引用使用運算符的意義不一樣;

  • 如果返回動態記憶體分配的物件或內存,必須使用指針,引用可能會造成記憶體外洩。

更多程式相關知識,請造訪:

程式設計入門! !

以上是c++引用和指標的差別是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn