2、C++ Primer 4th 筆記,基礎語言相關的概念[1]

來源:互聯網
上載者:User

1、C++中,每個運算式都會產生一個結果,通常是將操作符作用到其運算元所產生的值。當操作符是輸出操作符時,結果是左運算元的值。也就是說,輸出操作返回的值是輸出資料流本身。

2、注釋對不可嵌套。指/**/

3、我們使用istream對象作為while的測試條件時,結果是測試流的狀態,如果是流是有效(輸入的是有效字元或沒有到達檔案結尾),則測試成功。

4、因為標頭檔使用角括弧是找標頭檔的時候先從系統目錄下找,雙引號是先從工程所在的目錄下找,所以一般,標準庫的標頭檔用角括弧,非標準庫用雙括弧。

5、預設情況下,讀cin會重新整理cout,當程式正常結束時,cout也會被重新整理。

6、C++是靜態類型語言,在編譯時間執行類型檢查。

7、C++中,把負值賦給unsigned對象是完全合法的,其結果是該負數對該類型的取值個數求模後的值。

8、變數類型決定了變數的記憶體大小和布局、能夠儲存於該記憶體中的值的取值範圍及可應用在該變數上的操作集。

9、左值可以出現在指派陳述式的左邊或右邊,如變數是左值。右值只能出現在指派陳述式的右邊,如數字字面值是右值,右值只能讀不能寫。

10、一般而言,對象是記憶體中具有類型的地區。

11、初始化不是賦值,初始化是建立變數並給初始值,而賦值是擦除對象的當前值並且新值代替。

從概念上講,賦值操作要做以下工作:

如s1 = s2

1)先把s1佔用的相關記憶體釋放掉;

2)然後再分配給s1足夠存放s2副本的記憶體空間;

3)最後把s2中的所有字元複製到新分配的記憶體空間。

12、變數的定義用於為變數分配儲存空間,還可以指定初始值,在一個程式中,變數有且僅有一個定義。

聲明用於向程式表明變數的類型和名字,定義也是聲明。聲明可以有多次。

只有當聲明也是定義時,聲明才可以有初始化式,且只有當extern聲明位於函數外部時,才可以含有初始化式。

12、非const變數預設為extern。要使const變數能夠在其他的檔案中訪問,必須顯式地指定它為extern。

13、複合類型是指用其它類型定義的類型。不能定義參考型別的引用。

14、const引用是指const對象的引用。

15、非const引用只能綁定到與該引用同類型的對象;const引用則可以綁定到不同但相關的類型的對象或綁定到右值。

16、枚舉成員都是常量運算式。常量運算式是編譯器在編譯時間就能夠計算出結果的整形運算式。

17、const對象預設為定義它的檔案的局部變數。當我們在標頭檔中定義了const變數後,每個包含該標頭檔的源檔案都有了自己的const的變數,名稱和值都一樣。

18、逸出字元是反斜線後面跟著一個字元,一個3位八位元或一個十六進位的數。

19、為了避免溢出,儲存一個string對象size的最安全的方法是使用標準庫類型string::size_type;它被定義為與unsigned具有相同的含義。但是不要把size的返回結果賦值給個int變數。

20、字串和字面值的串連

當進行string對象和字串字面值混合串連操作時,+操作符的左右運算元必須至少有一個是string類型的。

21、vector是類模板,只有具現後,如vector<int>後才是資料類型。

必須是已存在的元素才能用下標操作進行索引。通過下標操作進行賦值時,不會添加任何元素。

22、迭代器

vector<int>::const_iterator //an iterator that cannot write elements

const vector<int>::iterator //an iterator whose value cannot change

任何改變vector長度的操作都會使已存在的迭代器失效;如在調用push_back之後,就不能再信賴先前指向vector的迭代器的值了。

    difference_type 由vector定義的signed整形,用於儲存兩個迭代器間的距離。

23、bitset

bitset類也是一種類模板,通過長度來初始化。如bitset<32>。

可以用unsigned值初始化bitset對象;以低階位對齊。也可以string對象初始化bitset對象;string對象和bitset對象之間是反向轉化的:string對象的最右邊字元(下標最大的那個字元)用來初始化bitset對象的低階位(即下標為0的位)。

string strval("1000");

bitset<32> bitvec4(strval);

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.