引用與指標很類似,但本質上確實不同的兩個東西。引用不是物件,只是乙個物件的別名,因而引用必須初始化。指標屬於物件,因而存在著指向指標的引用,而不存在指向引用的指標,即是指向了引用本質上而言是指向了引用所代表的物件。int *&變數名 指指向指標的引用,而int &*變數名 則會報錯。
const 限定符,分為頂層const和底層const,頂層const 包括const int a=1; int const *b等;表示a,b一旦指向某個物件,就無法更改了。頂層const 對於常用的型別名的賦值操作無影響,而指標變數要求賦值左端也是頂層const。而底層const包括 const int *c;const int &d;表示c所指向的物件或者d所表示的表名物件不可被更改,當底層const作為等號右側賦值時,要求左側的物件或者引用也是底層const,如int *e= b;就是錯誤的。從上述可以看出指標擁有頂層和底層const,而引用只有底層const。
空指標:c++11新標準中引入了字面值nullptr來表示,過去還有使用字面值0來生成空指標,過去的程式也曾用過null的預處理變數來作為空指標。
c primer第二章習題
習題2.1 int,long和short型別之間有什麼差別?答 short,int和long型別都表示整型值,儲存空間的大小不同.一般,short型別為半個機器字長,int型別為乙個機器字長,而long型別為乙個或兩個機器字長 在32位機器中int型別和long型別通常字長是相同的 用sizeof可...
C primer 第二章習題
習題 2.1 int long 和 short 型別之間有什麼差別?解答 它們的最小儲存空間不同,分別為 16 位 32 位和 16 位 對於16位機 一般而言,short 類 型為半個機器字 word 長,int 型別為乙個機器字長,而 long 型別為乙個或 兩個機器字長 在 32 位機器中,i...
C Primer學習 第二章
c 是一門靜態型別語言,在編譯時會作型別檢查。c 中初始化不是賦值。宣告和定義 extern關鍵字可以用來宣告變數名而不定義 extern宣告不是定義,也不分配儲存空間。extern int i int i extern double pi 3.1416 只有當extern宣告位於函式外部時,才可以...