引用與指標的區別

2021-07-25 11:05:53 字數 705 閱讀 7665

c++中引用型別與指標型別的區別

1.指標是乙個物件,引用則不是乙個物件,引用只是乙個物件的別名。

2.指標可以初始化,也可以不初始化,賦值之後可以重新賦值;引用再定義的時候必須初始化,一旦初始化繫結某一物件之後不能重新繫結到其他物件。

3.賦值和初始化是,無論指標還是引用,等號兩邊型別必須一致。但是存在特殊情況:

1> 在初始化常量引用(const 修飾)時,允許用、任意表示式作為初始值,只要該表示式能轉換成引用的型別即可。

例如:const int &i = 1;

const double &j = 1.1;

int x = 2;

const int &p = 2*2+x;

-----------------------------

double dval = 3.14;

const int &dval = dval;

等價於double dval = 3.14;

const int temp = dval;

const int &ri = temp;

這種情況下ri繫結了乙個臨時量物件,所謂臨時量物件就是編譯器需要乙個空間來存放表示式

的求值結果時臨時建立的乙個未命名的物件。

2>允許乙個指向常量的指標指向非常量物件:

double dval = 3.14;

const double *p = &dval;

引用與指標的區別

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

指標與引用的區別

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

指標與引用的區別

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