指標與引用的區別

2021-09-09 05:32:10 字數 795 閱讀 5857

指標和引用都是位址的概念;指標指向一塊記憶體,它的內容是所指記憶體的位址;而引用則是指向某塊記憶體的別名

不同點:

1、引用訪問乙個變數是直接訪問的,二指標是間接訪問。

2、指標是乙個實體有自己的記憶體,而引用僅是個別名,本身不單獨分配自己的記憶體空間

3、指標可以為空;引用不能為空,引用在開始時就繫結了乙個記憶體空間,在定義時必須初始化,所以它只能是這個記憶體空間的名字,之後不可變,記憶體空間的值是可變的;

例如:int i=3,j=4;

int &x=i;//稱為i的別名

x=j;//x仍然引用i,只是修改了x與i共享的記憶體空間的值

4、引用沒有const,指標有const,const的指標不可變

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

6、指標和引用的自增(++)運算意義不一樣;

例如:int a=;

int *pa=a;

int pb=&a;  

pa++表示指標向後移動乙個int長度,指向下乙個記憶體位址即pa[0]->pa[1]

pb++表示的是pb[0]的值++即將pb[0]=1—>pb[0]=2;

7、引用的健壯性遠大於指標;引用是型別安全的,而指標不是,引用比指標多了型別檢查

8、在結構體中,不能引用自身的乙個聯名,但可以指標指向自己;

typedef struct btnode

;

引用與指標的區別

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

指標與引用的區別

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

指標與引用的區別

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