C++ Primer 筆記——變量
阿新 • • 發佈:2017-07-23
關鍵字 com .html 3.1 extern double targe 不能 min
1. 初始化不是賦值,初始化的含義是創建變量時賦予其一個初始值,而賦值的含義是把對象的當前值擦除,而以一個新值來代替。
2.使用列表初始化內置類型的變量時,如果初始值存在丟失信息的風險,則編譯器將報錯。
int i{0.1}; // 錯誤
3.如果想聲明一個變量而非定義它,就在變量名前添加關鍵字extern,而且不要顯示的初始化它,任何包含了顯示初始化的聲明即成為定義。
extern int i; // 聲明i而非定義i int j; // 聲明並定義j extern double pi = 3.14; //定義,如果在函數體內試圖初始化一個extern變量將報錯
4.引用並非對象,相反的,它只是為一個已經存在的對象起的另外一個名字。
5.一旦引用的初始化完成,引用將和它的對象一直綁定在一起,所以引用在定義時必須初始化。
6.在支持C++ 11的情況下空指針最好使用nullptr,而盡量避免使用NULL。至於原因可以看如下鏈接:
http://www.cnblogs.com/zoneofmine/p/7224947.html
7.void* 是一種特殊的指針類型,可用於存放任意對象的地址,但是我們不知道這個地址中到底是個什麽類型的對象,所以也無法對這個對象做操作。
8.在定義多個變量的時候,類型修飾符(*或&)僅僅修飾最近的那個變量。
int* p1, p2; // p1是int指針,p2是int
9.引用本身不是一個對象,所以不能定義指向引用的指針,也沒有引用的引用。
10.decltype的表達式如果是加上了括號的變量,結果將是引用。
int i = 0; decltype((i)) a; // 錯誤,a是int&,沒有初始化 decltype(i) b; // 正確,b是一個int
C++ Primer 筆記——變量