C 引用和指標的區別

2021-07-25 23:41:08 字數 824 閱讀 5453

c++引用和指標在間接使用其他物件的各種操作功能上面類似,但是兩者的不同之處也很明顯:

1.指標本身佔據記憶體空間,但是引用只是乙個物件的別名,本身不分配記憶體空間;

2.指標定義時可以不初始化,但是定義乙個引用必須進行初始化,並且初始化時只能是乙個物件;

比如:int &b = 3.14; //這樣是錯的,要明白"引用只是乙個物件的別名而已"

3.指標可以重新指向另外乙個物件,但是引用無法重新繫結到另外乙個物件;

指標和引用有很大不同,但是初學的時候確實容易混淆,只要記住,引用只是乙個物件的別名,兩者共佔乙個記憶體位址,而指標則有自己單獨的記憶體空間,只是指向某個記憶體位址。

那麼,指向指標的引用該怎麼理解呢?

#include using namespace std;

int main()

{ int test = 3;

int *p = null;

int *&r = p; //r是對指標p的乙個引用

cout << "p的位址為:" << p << " r的位址為" << r << endl;

r = &test; //相當於p = &test

cout << "*p的值為" << *p << " *r的值為" << *r << endl;

*r = 4; //相當於*p = 4,改變了test的值

cout << "test的值為" << test << endl;

cout << "*p的值為" << *p << " *r的值為「 << *r 《經過這個例子,相信大家對引用和指標不明白的那一部分應該能理解了。

C 引用和指標區別

一 引用簡介 引用就是某一變數 目標 的乙個別名,對引用的操作與對變數直接操作完全一樣。引用的宣告方法 型別識別符號 引用名 目標變數名 例1 int a int ra a 定義引用ra,它是變數a的引用,即別名 說明 1 在此不是求位址運算,而是起標識作用。2 型別識別符號是指目標變數的型別。3 ...

C 引用和指標的區別

很久沒寫過這類文章了,本來是想做下筆記,既然要做筆記,不如寫下部落格,就動起手來。文采不怎麼樣,還忘大家見諒 c 引用變數是c 中新增的一種復合型別,也就是說標準c語言中沒有引用變數。所謂引用,實際上就是乙個已定義變數的別名,別名我想大家小時候都有,應該可以理解,別名表示的是同乙個人,這裡引用變數和...

C 指標和引用的區別

一 前言 作為一名c 程式設計師,關於指標和引用必須要有足夠的認識。最近在閱讀 大全2 感覺學習了很多,其中第13章,談論了這個部分。二 指標和引用的區別 在c 中,指標 和引用 都能夠間接地引用物件。對新手來說,看起來只是obj field 和 obj.field 的區別。他們的區別在於 1.引用...