C Primer Plus的若干收穫 (二)

2021-06-22 18:08:07 字數 2099 閱讀 1309

哎,真是不想吐槽考駕照的艱辛歷程了。跑到大西郊,頂著大太陽,一天就能摸上個十幾分鐘二十分鐘的車,簡直不要太坑爹,這兩天真是做的我屁股疼的不行。。。今天果斷不去了。只可惜我的大阿根廷啊,堅持到最後功虧一簣惜敗於德國,枉我四點自然醒起來看了接下來的比賽。不能不佩服諾伊爾,拉姆,博阿滕組成的後防線,讓阿根廷整場沒有幾個有威脅的射門。祝賀我大克洛澤在職業生涯暮年能將大力神盃捧入懷中。。。拜拜   巴西世界盃,拜拜  阿根廷,拜拜,    梅西!

2.1  字串常量

將字元陣列初始化為字串的工作看上去冗長乏味--使用大量的單引號,且必須記住加上空字元。不必擔心,有一種更好的。將陣列初始化為字串的方法---只需要使用乙個用引號括起來的字串即可,這種字串被稱為字串常量,如:

char dog[8]=;//not  a string

char cat[8]=;//a string

char bird[11]="mr.cheeps";

char fish="bubbles";

有時候字串很長,無法放在一行。c++允許將兩個引號括起來的字串常量合併為乙個。事實上,任何兩個有空白(空格,製表符和換行符)分隔的字串常量都將自動拼接成乙個。因此,可有如下的語句:

cout<<"i'd give my right arm to be" "a great violinist.\n"

cout<<"i'd give my right arm to be a great violinist.\n";

cout<<"i'd give my right arm to"

"be a great violinist.\n";

2.2 字串的讀入  cin與getline的討論

下面給出乙個比較容易錯的例子,給與一下小的提醒。

#includeint main()

;

該語句完成了:讓spectrum成為了乙個新型別,它成為列舉型別;其次將red,orange,yellow等作為符號常量,它們對應整數值0~7.這些常量叫做列舉量,在預設情況下,將整數值給予列舉量,第乙個列舉量的值為0,第二個為1,依次類推。列舉變數具有下面的性質。
spectrum band;

band=blue;//valid

band=2000;//invalid,2000 not an enumerator

//對於列舉,只定義了賦值運算子,具體地說沒有為其定義算數運算:

band=orange;//valid

++band;//error

band=orange+red;//error

//列舉型別可被提公升為整形,但是int型別不能自動轉換為列舉型別

int color=blue;//valid,spectrum type promoted to int

band=3;//error

color=3+red;//red converted to int

正如你看到那樣,列舉的規則相當的嚴格。實際上,列舉更常常被用來定義相關的符號常量,而不是新型別。如果打算只使用常量。而不建立列舉型別的變數,則可以省略列舉型別的名稱。如:

enum;

2.5 在使用new與delete可能會遇到的相關問題

我們知道,當需要記憶體時,我們可以使用new來請求,當使用完記憶體時,我們使用delete運算子來將其歸還給記憶體池。在使用new與delete時,我們應當遵循以下規則:

下面簡要介紹一下記憶體洩露或記憶體被耗盡:計算機可能由於沒有足夠的記憶體而無法滿足new請求。在這種情況下,new通常會引發異常,該異常會在以後講解。在c++中,值為零的指標被稱為空指標。c++確保空指標不會指向有效的資料,因此它常備用來表示運算子或函式失敗。被洩露的記憶體將在程式的整個生命週期都不可使用;這些記憶體被分配出去但是無法使用。極端情況下是,記憶體洩露非常嚴重,以至於應用程式所用的記憶體被耗光,出現記憶體耗盡的錯誤,導致程式崩潰

2.6 自動儲存、靜態儲存與動態儲存

C Primer Plus的若干收穫 (三)

有時候懷疑真是懷疑自己走的路到底是不是正確的。作為乙個土生土長數學系學生,卻對數學毫無興趣,沒事的時候就喜歡躲在圖書館看看有關計算機的書。有時候期末考試時候會掛個一兩門的數學專業課,有時候真希望數學課本上這乙個個繁瑣的證明是用 寫的。自己幾乎丟掉了本專業的一切,去全身心投入到計算機這一龐大而繁瑣的學...

C Primer Plus的若干收穫 (四)

經過半個月的辛苦的學習,終於把那個該死的科目三給考過去了,真是太煎熬啊。又被曬黑了,不知道又要捂多久才能重新變過來。不過,好在自己抽空能夠看下c 時間也不算太難過。馬上要回學校了,一看自己才寫了三篇博文,簡直不能忍了。最近要加把油啊,一會學校事情可就多了。1.1 檔案尾條件 如果輸入來自於檔案,則存...

C Primer Plus的若干收穫 (七

這篇博文主要講了命名空間,說實話在接觸之前一直對這方面很感興趣,現在來好好的學習一番。7.1 新的命名空間特性 c 新增了這樣一種功能,即通過定義一種新的宣告區域來建立命名的命名空間,這樣做的目的之一是提供乙個宣告名稱的區域。乙個命名空間的名稱不會與另外乙個空間的名稱發生衝突,同時允許程式的其他部分...