C primer 第五版個人筆記 第一章 開始

2021-10-05 09:03:46 字數 1491 閱讀 1145

用visual studio 2019執行的,直接開啟官方的資料夾中main_only.cpp會提示選擇合適的啟動項,這裡是因為vs2019開始乙個程式的除錯做了很多的準備,所以要新建乙個專案/解決方案,在原始檔裡新增新cpp檔案(或者已有的檔案比如main_only.cpp),然後就可以愉快的執行檔案了。

原始檔裡含有main函式的檔案只能有乙個,多餘的從專案中移除,否則無法正常執行,因為有多個main()函式衝突。

輸出運算子《返回的是其左側的運算物件(如cout),因此可以連用cout輸入運算子同理

使用c語言的界定符(/*和*/)注釋多行語句時,最好在被注釋的每一行以星號*開頭,使**更加工整美觀:

#include /*

* comment line1

* comment line2

*/

但是多層注釋界定符不能巢狀,最好還是用單行注釋方式注釋掉**段的每一行

// /*

// * 單行注釋的任何內容都會被忽略

// * 包括巢狀的注釋也一樣會被忽略

// */

練習1.7

#include int main()

報錯內容

std::cin>>value
由於》返回的是左值中的istream物件(cin),它的效果是檢測流的狀態。如果流是有效的,即為遇到錯誤則檢測成功。當遇到檔案結束符(windows裡是ctrl+z)或乙個無效的輸入(如輸入的不是乙個整數),istream物件的狀態會變為無效。處於無效狀態的istream物件會使條件為假。

這個地方正好對應了牛客網的不定資料輸入。

編譯器常見的可以檢查的錯誤: 語法錯誤(syntax error), 型別錯誤(type error), 宣告錯誤(declaration error);

#include 用來包含標準庫的標頭檔案時使用尖括號(<>)包圍投檔名。對於不屬於標準庫的標頭檔案,用雙引號包圍("")

由於官方檔案裡有乙個book_sales檔案,做這節的練習1.25時這裡順帶複習一下檔案輸入輸出,標頭檔案, ifstream和ofstream都是命名空間std下的,因此在一開始沒有使用using namespace std時要注意加上std::否則會報錯「未定義識別符號」。

**如下,注意在最後要有fin.close()

#include #include #include #include "sales_item.h"

using namespace std;

int main()

} cout << total << endl;

} else

fin.close();

return 0;

}

C Primer第五版筆記 關聯容器

一 型別 關聯容器支援高效的關鍵字查詢和訪問,標準庫中兩個主要的關聯容器是map和set。map中的元素是鍵值對關鍵字表示索引。set中每個元素只包含乙個關鍵字,set支援高效的關鍵字查詢。關聯容器根據三個特性可以分為8種 1 set還是map 2 關鍵字是否可以重複,允許重複的容器名字中都包含單詞...

C Primer第五版筆記 動態陣列

allocator類 為了讓new分配乙個物件陣列,需要在型別名後跟方括號,括號中是分配物件的數目,該數目必須是整型,但不必是常量 new t 分配的記憶體並不是得到乙個陣列,而是得到乙個陣列元素型別的指標,因此不能對動態陣列呼叫begin和end 與普通陣列不同的是,普通陣列不能定義長度為0的陣列...

C Primer第五版筆記 拷貝控制

拷貝賦值函式 析構函式 三 五法則 default和阻止拷貝 乙個類通過定義五種特殊的成員函式來控制其拷貝 賦值 移動以及銷毀操作 拷貝建構函式 拷貝賦值運算子 移動建構函式 移動賦值運算子和析構函式。這些操作都是拷貝控制操作。當實現自己的類的時候要想好在做這些操作時的規則,因為編譯器通常會自動生成...