《c primer》讀書筆記4

2021-09-30 02:17:23 字數 1454 閱讀 9421

筆記範圍:

1.5節

本節的內容不是很難,學過一點程式設計的人都會很容易接受,但是,我一直以來就有一種感覺。自己用的最多但又用的最糊塗的也就是

i/o系統,很明顯

i/o實現了對計算機裝置的直接操作。在

c++裡我們知道它是通過

ios類的物件來完成的。從感覺上講,遠遠不如

c來的直接,明白。當然這樣做的好處是大大簡單了我們的操作,但是不幸的是這會給我們的理解造成一定的困難,下面我將提出自己疑問。

第一,大家都知道,我們的

io操作是通過三個物件來完成的。

cin、

cout

、cerr

。作者在描述的時候用了「繫結」這個詞,很明顯被抽象的資料型別和具體裝置實現了完美的對接。但是我的問題是,從

adt的思路來說,這些物件封裝了那許資料?提供那些操作?這些資料和介面是如何對裝置進行控制的?很顯然,以我們現在的知識很難回答這些問題。就算是自以為合理的估計也不能,但是這樣的思考,有助於我們對類設計思維的熟悉,但是思考到此為止罷。不然我就誤人子弟了。

第二,還有乙個問題,初學者也許會問,作者告訴我們

cout

和cerr

都可以用來輸出。他們的區別乙個是一般的輸出,乙個是輸出錯誤資訊。可是這樣的解釋並不能使我們這些好奇的人滿意。於是我做了個惡作劇,改寫了我們那個知名的

」hello world!」

int main()

事實證明

使用者如果不看**。他們不會知道自己看到的是個

err。那麼這兩個物件的區別只是個習慣或約定嗎?我們同樣不能解釋。把它留著罷,相信總會「悟」的

第三,我想談談那個「

endl

」,在很多教材裡把它等價於

」/n」

正確嗎?

no,你可以寫下如下句子。

cout<<」aaa」;

a=getchar();//.假設a

已經定義

cout< 在

vc6中你會發現輸入輸出的順序亂了

(剛才在

vc++.net 2003

又恢復正常了、奇怪。因此不建議在

c++中用

c的東西

),為什麼呢

?作者告訴我們

endl

除了/n

的功能外還有個重新整理的功能,重新整理什麼?看仔細點,重新整理緩衝區。什麼是緩衝區?哦。這個問題也許你需要一些別的知識,比如。《計算機組成原理》

關於檔案的操作,與單檔案非常類似,唯一要注意的是流進出的參照物、記憶體?

or 檔案?

筆記的最後,我還是要提醒大家。我提出了很多牛角尖的問題。只是對初學者的思考方法提出一些個人建議。對於這些問題本身有些並沒有討論價值。有些不是現在該解決的問題。在這節裡你的任務其實很簡單,搞清每個物件和運算子的作用。就是這樣,

c++之父把

c++說成難學易用的語言,我們可以理解這句話的涵義。要不斷的想起這句話,

《C Primer》讀書筆記 4

1.條件運算子的使用,平時很少使用這個.以至於經常理不清邏輯,還是記錄一下,加深一下印象。int tmain int argc,tchar argv int a 1 int b 2 int c 0 c a b a b cout b a b 先判斷a b,如果為真,則c取得 左邊的值,否則取右邊的值。...

C primer 讀書筆記

第2 章 變數和基本型別 1 變數直接初始化和變數 複製初始化 int ival 1024 direct initialization int ival 1024 copy initialization 初始化不是賦值 2 內建型別復 制初始化和直接初始化幾乎沒有區別 但 對類型別物件來 說,有些初...

C Primer讀書筆記

前些日子開始看 c primer 順便做一些筆記,既有書上的,也有自己理解的。因為剛學c 不久,筆下難免有謬誤之處,行文更是凌亂 所幸不是用來顯配的東西,發在linuxsir只是為了方便自己閱讀記憶,以防只顧上網忘了正事。書看了不到一半,所以大約才寫了一半,慢慢補充。const要注意的問題 1 下面...