C primer 第五版學習筆記 第一章

2021-09-25 14:41:48 字數 1749 閱讀 5658

本章介紹c++大部分基礎內容:型別、變數、表示式、語句及函式。在這個過程中,我們會簡單介紹如何編譯及執行程式。

首先關於函式的定義,乙個函式包括四個部分:返回型別(return type)、函式名(function name)、乙個括號包圍的形參列表(parameter list,可以為空)以及函式體(function body)。

最簡單的函式

int main()      

1.關於main()每個c++程式都包括乙個或多個函式,其中乙個必須命名為mian,作業系統通過呼叫main,來執行c++程式。

2.retuen 0;

給作業系統返回乙個值,int型別。在大多數系統中,main的返回值用來指示狀態。返回值0表明成功,非0的返回值的含義由系統定義,通常用來指出錯誤型別。

3.關於輸出輸入(io)語句

iostream庫包括istream(輸入流)與ostream(輸出流)兩個基礎型別。

輸入為istream型別的cin物件。同理還有為輸出的cout、為輸出警告和錯誤資訊的cerr、為輸出程式執行時的一般性訊息的clog。

例,簡單的求和函式

#includeint main()

{ std::cout>v2;

std::cout<

通過提示使用者輸入兩個數字(上圖為 1  2 ),然後回車,程式計算結果( 3 )

#include是由#include 指令來告訴編譯器,我們要用<>中名字的相應庫。且#include指令和標頭檔案的名字必須寫在同一行。

main的函式體的第一條語句執行了乙個表示式,乙個表示式產生乙個結果,它由乙個或多個運算物件和乙個運算子組成。

《運算子(輸出運算子)接受兩個運算物件,左側物件必須是乙個ostream物件,右側物件是要列印的值。次運算子將給定的值寫到給定的ostream物件中,輸出運算子的計算結果就是左側的運算物件。

當我們使用了兩次《運算子的時候,第乙個運算子的結果成為了第二個運算子的左側運算物件。

std::cin>>v1>>v2;

//等價於

(std::cin>>v1)>>v2;

>>運算子(輸入運算子)接受乙個istream作為其左側運算物件,接受乙個物件作為其右側運算物件。它從給定的istream讀入資料,並存入給定物件中。與輸出運算子類似,輸入運算子返回其左側運算物件作為其計算結果。當使用兩次》運算子的時候,第乙個輸入存進第乙個位置,第二個輸入存進第二個位置。

4.關於endl

這是乙個被稱為操縱符的特殊值,寫入endl的效果是結束當前行,並將與裝置關聯的緩衝區中的內容刷到裝置中,緩衝重新整理操作可以保證到目前為止程式所產生的所有輸出都真正寫入輸出流中,而不是僅停留在記憶體中等待寫入流。

5.關於字首命名空間std::

字首std::指出名字cout和endl是定義在名為std的命名空間中的,命名空間可以幫助我們避免不經意的名字定義衝突,以及使用庫中相同名字導致的衝突,標準庫定義的所有名字都在命名空間std中。

如何學習C primer 第五版

c primer 第一次可以跳著看。關鍵是要盡快用起來,在使用中熟練,而不是在細節中迷失。以c primer第五版為例,第一遍讀的時候 part1也就是前七章,除了6.6,6.7節,都要通讀。尤其是第三章初步介紹了vector和string,簡直就是新手福音,搞定這兩個容器就能寫一些簡單的程式。pa...

C Primer第五版筆記 關聯容器

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

C Primer第五版筆記 動態陣列

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