我認識的指標和引用的比較

2021-06-25 07:31:26 字數 591 閱讀 9168

指標和引用的比較

1.引用必須有初始值

string &rs;//error

string *ps;//ok {

string s("xyz");

string &s1=s;

}//ok

2.reference比pointer更有效率

原因就是:pointer需要檢查是否為null

void print_int(const int & ri)

void print_int(const int *pi)

3.pointer可以被重新賦值,指向另乙個物件,reference總是指向最初指向的那個物件

string  s1("nancy");string s2("cancy");

string &rs=s1;

string *ps=s1;

rs=s2;//此時rs仍然指向s1只是裡面的內容被s2替換了,即s1=「cancy」

ps=&s2;//ps此時改變了指向,指向了s2

另外在使用指標和引用的時候,當我們確定某乙個物件會實時存在時,建議用引用。

指標和引用的比較

總述 使用引用 reference 和指標 pointer 都可間接訪問另乙個值,但它們之間存在兩個重要區別 1 引用總是指向某個確定物件 事實上,引用就是該物件的別名 外號 定義引用時沒有進行初始化會出現編譯錯誤 2 賦值行為上存在差異 給引用賦值修改的是該引用所關聯癿物件的值,而不是使該引用與另...

指標和引用的比較

雖然使用引用 reference 和指標都可間接訪問另乙個值,但它們之間有兩個重要區別。第乙個區別在於引用總是指向某個物件 定義引用時沒有初始化 是錯誤的。第二個重要區別則是賦值行為的差異 給引用賦值修改的是該引用所關聯的物件的值,而並不是使引用與另乙個物件關聯。引用一經初始化,就始終 指向同乙個特...

引用和指標的比較

引用和指標的比較 引用是c 中的概念,初學者容易把二者混淆。例1 int m int n m 在這裡,n相當於是m的別名,對n的任何操作就是對m的操作。n既不是m的拷貝,也不是指向m的指標,其實n就是m它自己。例2 int i 0 int j 5 int k i k j 示例程式中,k被初始化為i的...