#
2.1.5 我的一生是這樣度過(guò)的:C++程序的執(zhí)行過(guò)程
進(jìn)入_tmain()函數(shù)之前的事情我做不了主,但是進(jìn)入_tmain函數(shù)后,就是我的地盤(pán)了。我會(huì)按照你在源代碼中給我制定的人生規(guī)劃,一條語(yǔ)句一條語(yǔ)句地往下執(zhí)行,一步一步地往下走。你一定還記得,我的源代碼是這樣的:
int _tmain(int argc, _TCHAR* argv[])
{
// 在屏幕上顯示“Hello World!”
cout<<"Hello World!"<<endl;
return 0;
}
_tmain()函數(shù)有兩個(gè)參數(shù)argc和argv,你可以通過(guò)這兩個(gè)參數(shù),給_tmain()函數(shù)傳遞一些信息,給我一些額外的吩咐,比如通過(guò)這兩個(gè)參數(shù)告訴我應(yīng)當(dāng)在屏幕上顯示什么內(nèi)容等等。在這里,暫時(shí)沒(méi)有使用這兩個(gè)參數(shù)。
進(jìn)入_tmain()函數(shù)后,我遇到的第一個(gè)語(yǔ)句就是:
cout<<"Hello World!"<<endl;
這條語(yǔ)句讓我在DOS窗口中顯示“Hello World!”這樣一個(gè)字符串,于是我開(kāi)始控制DOS窗口,在其中顯示這個(gè)字符串,完成了你交給我的任務(wù)。
接下來(lái)的一個(gè)語(yǔ)句是:
return 0;
這條簡(jiǎn)短的語(yǔ)句宣告了我人生歷程的結(jié)束。它表示整個(gè)_tmain()函數(shù)的結(jié)束。圖2-7是我短暫而光輝的一生!

圖2-7 HelloWorld短暫而輝煌的一生
更多來(lái)自
http://imcc.blogbus.com
我的父親母親:編譯器和鏈接器
雖然我是Visual Studio創(chuàng)建的,但是實(shí)際上,我的老爸和老媽是Visual Studio集成的編譯器和鏈接器。此外,Visual Studio提供的主要是編輯功能,讓你更方便地編輯我的源代碼。
我老爸編譯器的工作是將高級(jí)語(yǔ)言C++翻譯為低級(jí)語(yǔ)言(機(jī)器語(yǔ)言)。
我的源文件是使用C++這種高級(jí)程序設(shè)計(jì)語(yǔ)言編寫(xiě)的,便于人們編寫(xiě)、閱讀和維護(hù)。但計(jì)算機(jī)不理解高級(jí)語(yǔ)言,所以老爸的職責(zé)是將源程序翻譯成計(jì)算機(jī)能夠解讀運(yùn)行的目標(biāo)語(yǔ)言(target language)。目標(biāo)語(yǔ)言通常是匯編語(yǔ)言或目標(biāo)機(jī)器的目標(biāo)代碼(object code),有時(shí)也稱(chēng)作機(jī)器代碼(machine code)。通過(guò)老爸的工作,計(jì)算機(jī)能看懂C++程序,就可以按照源文件中的指令執(zhí)行相應(yīng)的動(dòng)作。
老爸完成我的編譯工作后,我還只是一些目標(biāo)文件,還需要老媽鏈接器將一個(gè)或多個(gè)由老爸編譯生成的目標(biāo)文件和庫(kù)函數(shù)鏈接成可執(zhí)行文件,這樣才誕生了一個(gè)可執(zhí)行的C++程序。再來(lái)回顧一下我的誕生過(guò)程(如圖2-6所示):

圖2-6 我的父親母親
炎炎夏日,為大家奉獻(xiàn)兩套精美的C++壁紙,希望能夠給你帶去一絲清涼
夏日清涼版:
C++也山寨啊
全部壁紙下載
我的五官和四肢:C++程序=預(yù)編譯指令+程序代碼+注釋
來(lái)自
《我的第一本C++書(shū)》麻雀雖小,五臟俱全。大家別看我個(gè)頭小,只有短短的幾行代碼,實(shí)現(xiàn)的功能也很簡(jiǎn)單,但是我同樣擁有健全C++程序的五官和四肢:預(yù)編譯指令、程序代碼和注釋?zhuān)鐖D2-5所示。大多數(shù)情況下,這三個(gè)基本部分都被放在一個(gè)擴(kuò)展名為“cpp”的文本文件中,這個(gè)文件被稱(chēng)為C++ 源文件。源文件記錄了我的五官和四肢、規(guī)劃了我的人生。而你作為源文件的編寫(xiě)者,就是我的設(shè)計(jì)師了。通過(guò)修改源文件,你可以改變我的面貌、我的人生軌跡,讓我完成各種任務(wù)。

圖2-5 C++程序=預(yù)編譯指令+程序代碼+注釋
會(huì)說(shuō)話,就會(huì)編程:C++是如此簡(jiǎn)單的編程語(yǔ)言
C++是一門(mén)程序設(shè)計(jì)語(yǔ)言,有著語(yǔ)言的基本特征,我們可以像學(xué)習(xí)普通語(yǔ)言一樣來(lái)學(xué)習(xí)C++。
語(yǔ)言,是用來(lái)描述和表達(dá)現(xiàn)實(shí)世界的,編程語(yǔ)言也不例外。為了描述現(xiàn)實(shí)世界的事物,我們需要一些名詞,在C++中就是數(shù)據(jù)類(lèi)型和用數(shù)據(jù)類(lèi)型表達(dá)的數(shù)據(jù)。而為了表達(dá)事物之間的關(guān)系,將各個(gè)事物連綴成句子,在C++中就是表達(dá)式。將多個(gè)句子通過(guò)一定的邏輯關(guān)系組合起來(lái),就可以形成一篇文章,同樣的,在C++中通過(guò)一定的邏輯控制將多個(gè)表達(dá)式組合起來(lái),就形成了程序。通過(guò)C++編程語(yǔ)言和自然語(yǔ)言的對(duì)比,我們可以輕松地理解C++程序的含義。C++是描述現(xiàn)實(shí)世界的編程語(yǔ)言,編寫(xiě)程序的過(guò)程,是將自然語(yǔ)言翻譯成程序語(yǔ)言的過(guò)程,如此而已。
比如,在自然語(yǔ)言中,我們可以這樣來(lái)描述一件事情:
有個(gè)男孩叫小張,有個(gè)女孩叫小芳。男孩向女孩示愛(ài)。女孩對(duì)男孩進(jìn)行考察,如果男孩有房又有車(chē),則與之交往;如果沒(méi)有,則與之拜拜。翻譯過(guò)程可以參考圖1-4。

圖1-4 編程就是把自然語(yǔ)言翻譯成C++語(yǔ)言
C++語(yǔ)言的發(fā)展過(guò)程,不僅是一個(gè)特性不斷增加,內(nèi)容不斷豐富的過(guò)程,更是一個(gè)在應(yīng)用領(lǐng)域不斷攻城略地的過(guò)程。在其40余年的發(fā)展過(guò)程中,C++在多個(gè)應(yīng)用領(lǐng)域都得到了廣泛的應(yīng)用和發(fā)展。無(wú)論是在最初的UNIX操作系統(tǒng)上,在Windows操作系統(tǒng)上,還是在最近興起的嵌入式系統(tǒng)上,C++都占有一席之地(如圖1-3所示)。

圖1-3 C++世界三分天下
1.2.6 五岳劍派:C++世界的五大子語(yǔ)言
C++已經(jīng)有40多年的發(fā)展歷史了,在發(fā)展過(guò)程中,因?yàn)椴煌膽?yīng)用領(lǐng)域,不同的開(kāi)發(fā)思想而形成了不同的C++子語(yǔ)言。每個(gè)子語(yǔ)言各有所長(zhǎng),就像C++世界的五岳劍派,各自在自己的領(lǐng)域獨(dú)領(lǐng)風(fēng)騷,形成C++世界百花齊放的繁盛局面(如圖1-2所示)。

圖1-2 C++的五種子語(yǔ)言爭(zhēng)奇斗艷
摘要: 導(dǎo)讀:
看圖也能學(xué)C++?!
沒(méi)錯(cuò),看圖也能學(xué)C++!
這本迷你書(shū)是《我的第一本C++書(shū)》的迷你版,它抽取了《我的第一本C++書(shū)》中的全部的精美插圖,并配上相應(yīng)的解釋說(shuō)明。它以圖文并茂的生動(dòng)形式,向你講解那些所謂的高深的C++知識(shí),讓你對(duì)那些抽象的C++知識(shí)有一個(gè)更加形象的理解,向你展示這個(gè)美麗而神秘的C++世界,讓你在有趣的看圖過(guò)程中,輕松地學(xué)到了C++知識(shí)。
閱讀全文
摘要: 《我的第一本C++書(shū)》:
STL運(yùn)用到了極致,發(fā)揮出了它簡(jiǎn)潔優(yōu)雅的特點(diǎn),這才是讓考官滿意的滿分答案。同時(shí),這道題也告訴我們這樣一個(gè)道理:代碼,就像女人的裙子,越短越好。
——介紹STL算法
所以,這是一本非一般的C++書(shū)。
閱讀全文
摘要: 一位朋友評(píng)價(jià)這是“一部C++語(yǔ)法大全”,這個(gè)評(píng)價(jià)太夸張了,擔(dān)當(dāng)不起啊 實(shí)際上,我對(duì)于C++語(yǔ)法的態(tài)度,有點(diǎn)像對(duì)英語(yǔ)語(yǔ)法的態(tài)度,我們學(xué)習(xí)英語(yǔ),聰明的人不會(huì)去背一本英語(yǔ)語(yǔ)法書(shū)(但是有些不太聰明的人,卻去背了),老外們小時(shí)候恐怕也沒(méi)有學(xué)過(guò)什么英語(yǔ)語(yǔ)法吧,但是這并不妨礙他們說(shuō)一口流利的英語(yǔ)。學(xué)習(xí)英語(yǔ)講求語(yǔ)感,C++作為一門(mén)程序設(shè)計(jì)語(yǔ)言,說(shuō)到底,它的本質(zhì)還是語(yǔ)言,同樣講求語(yǔ)感,所以,這本書(shū)可能給你講解的不是某些具體的語(yǔ)法,而是通過(guò)一些生動(dòng)有趣的小例子,講解C++的應(yīng)用,就像我們第一堂英語(yǔ)課學(xué)習(xí)的“Good Morning”一樣,以這樣的形式來(lái)培養(yǎng)大家的C++語(yǔ)感。 有了C++語(yǔ)感,你就仿佛找到了打開(kāi)C++大門(mén)的鑰匙。想入門(mén)還是出門(mén),那就隨心所欲了
閱讀全文