C++primer中對 物件的定義:物件是指一塊能儲存資料並具有某種型別的記憶體空間一個物件a,它有值和地址&a,執行程式時,計算機會為該物件分配儲存空間,來儲存該物件的值,我們透過該物件的地址,來訪問儲存空間中的值 指標p也是物件,它同樣有地址&p和儲存的值p,只不過,p儲存的資料型別是資料的地址。如果我們要以p中儲存的資料為地址,來訪問物件的值,則要在p前加解引用運算子"*",即*p。 物件有常量(const)和變數之分,既然指標本身是物件,那麼指標所儲存的地址也有常量和變數之分,指標常量是指,指標這個物件所儲存的地址是不可以改變的,而指向常量的指標的意思是,不能透過該指標來改變這個指標所指向的物件。 我們可以把引用理解成變數的別名。定義一個引用的時候,程式把該引用和它的初始值繫結在一起,而不是複製它。計算機必須在宣告r的同時就要對它初始化,並且,r一經宣告,就不可以再和其它物件繫結在一起了。 實際上,你也可以把引用看做是透過一個常量指標來實現的,它只能繫結到初始化它的物件上。 關於指標和引用的對比,可以參看<<more effective C++>>中的第一條條款,引用的一個優點是它一定不為空,因此相對於指標,它不用檢查它所指物件是否為空,這增加了效率 比如下面的程式碼
C++primer中對 物件的定義:物件是指一塊能儲存資料並具有某種型別的記憶體空間一個物件a,它有值和地址&a,執行程式時,計算機會為該物件分配儲存空間,來儲存該物件的值,我們透過該物件的地址,來訪問儲存空間中的值 指標p也是物件,它同樣有地址&p和儲存的值p,只不過,p儲存的資料型別是資料的地址。如果我們要以p中儲存的資料為地址,來訪問物件的值,則要在p前加解引用運算子"*",即*p。 物件有常量(const)和變數之分,既然指標本身是物件,那麼指標所儲存的地址也有常量和變數之分,指標常量是指,指標這個物件所儲存的地址是不可以改變的,而指向常量的指標的意思是,不能透過該指標來改變這個指標所指向的物件。 我們可以把引用理解成變數的別名。定義一個引用的時候,程式把該引用和它的初始值繫結在一起,而不是複製它。計算機必須在宣告r的同時就要對它初始化,並且,r一經宣告,就不可以再和其它物件繫結在一起了。 實際上,你也可以把引用看做是透過一個常量指標來實現的,它只能繫結到初始化它的物件上。 關於指標和引用的對比,可以參看<<more effective C++>>中的第一條條款,引用的一個優點是它一定不為空,因此相對於指標,它不用檢查它所指物件是否為空,這增加了效率 比如下面的程式碼