C++ 探索之旅 | 第一部分第一課:什麼是 C++

程式設計師聯盟發表於2017-04-27

C++ 探索之旅 | 第一部分第一課:什麼是 C++

-- 作者 謝恩銘 轉載請註明出處


《C++探索之旅》全系列

內容簡介


  1. 開宗明義
  2. 什麼是C++
  3. 什麼是程式
  4. 程式語言
  5. C++與其他語言的比較
  6. C++的歷史
  7. C++經典書籍
  8. 總結
  9. 第一部分第二課預告

1. 開宗明義


親愛的讀者,您是否對 C++ 感興趣,但因為 C++ 看起來很難,或者別人對你說 C++ 挺難的,你不知道如何下口,哦,不,是如何下手 ?

別擔心,這個系列教程就是為 C++ 初學者準備的。當然了,此課程也適合進階。

不可否認,C++ 是一門非常著名的語言。幾乎學計算機的同學都難免會接觸一下 C++,中國的大學課堂一般也是先學 C 語言入門,然後就是 Java 或者 C++。

C++ 這門語言的使用很廣泛,特別是在遊戲開發領域,C++ 的效能和無限可能性使得其幾乎獨佔鰲頭。

我們經常聽到說 C++ 是 C 語言的後繼。實際上,這兩門語言雖然有點像,但還是不一樣的。C++ 加入了很多新的特性,比如物件導向程式設計(OOP,Object-Oriented Programmation)。

小編一直覺得:學程式設計,第一門語言最好是C語言。有興趣的朋友可以參看我的 《C語言探索之旅》

當然有的朋友見解不同,覺得 Python,Java 等相對比較好上手的語言更適合。

C,C++,Java 這三門語言是可以做到相輔相成,融會貫通的。事實上,C++ 的發明受了 C 語言的啟發,而 Java 的發明又受了 C++ 的啟發。

個人淺見認為:
有了 C 語言的基礎,再去學 C++ 和 Java,會輕鬆很多。
當然,如果你有餘力學一下組合語言,那會更有幫助,請參見我的 學習彙編對程式設計有什麼幫助?如何學習

在這個系列課程中,我們不僅會一點點帶大家領略 C++ 的奇妙之處,後面還將帶大家來探索一個 C++ 的庫:Qt。

Qt 這個庫非常強大,已經超越了一個庫單純的範疇,甚至可以說是一套體系。在嵌入式領域,Qt 也大有可為。Qt 開發也非常方便,獨有的「訊號-槽」的機制可以大大加快開發速度。

如果當時諾基亞沒有拋棄 Qt,用 Qt 設計的 Meego 系統來搭載手機而不是棄 Intel (英特爾)轉投入「霸道總裁」 Microsoft(微軟)的懷抱,那也許 C++ 目前會更火。

2. 什麼是C++


C++ 一般我們也可以寫成 CPP,或者 C Plus Plus( Plus是英語「加上」、「更多」的意思)。所以從名字上我們就可以看出一點端倪。

既然我們有C語言,那 C++ 豈不是意味著「在C語言的基礎上再多加了一些東西」麼?

其實是可以這樣理解的,雖然我們一般還是會把 C 語言和 C++ 看成兩門不同的語言。但是確實 C++ 的發明受了 C 語言的啟發。

讀者朋友,如果你還有興趣繼續看下去,說明你對程式設計有一定熱情,或者有興趣想學著程式設計試試。

記得之前網上有一個視訊,是微軟創始人 比爾·蓋茨、Facebook 創始人馬克·祖克伯、Twitter 聯合創始人傑克·多西以及 Dropbox 聯合創始人兼 CEO Drew Houston 和 Zappos CEO 謝家華 等,同時也包括了體育界和政界的一些明星,比如 NBA 邁阿密熱火隊球星 克里斯·波什 和美國前總統 克林頓 和副總統 戈爾 等聯合錄製的一個視訊,鼓勵全民學程式設計。

程式設計其實沒有那麼難,確實人人都可以學程式設計的,現在程式設計的門檻越來越低了,網上好的教程和資源太多。新的程式語言也設計得越來越符合人的思維,簡單易用。

在這一課裡,我們會嘗試解答大家初遇 C++ 的一些問題。

不過不要忘了,這個課程是給初學者的,所以你並不需要擔心,即使你從來沒有寫過一行程式碼,也不知道程式設計和程式是什麼。

可以說這個系列課程不需要你預先有任何程式設計知識,只需要你有閱讀的能力。

我們就是從零開始。當然,如果你有程式設計基礎,那這個 C++ 的課程會更容易學。

唯一需要大家做到的,就是循序漸進地學習這個系列課程,並且認真獨立完成我們的各種練習題和專案。

準備好了麼?C++ 這座「太行王屋山」,我們來征服它吧!

3. 什麼是程式


程式( Program )是資訊科技的基礎。你在電腦上可以做各種操作,就要歸功於執行在電腦裡的各種程式。

在我們的 《C語言探索之旅》第一部分第一課:什麼是程式設計? 裡已經做了比較詳細的介紹了,但是因為這個 C++ 的系列教程是面向初學者的,所以小編不厭其煩地再講一遍。儘量不重複。

我們先看以下截圖:

C++ 探索之旅 | 第一部分第一課:什麼是 C++

上面的截圖,是我在 Windows 作業系統裡擷取的。

可以看到,我們這裡開啟了三個不同的視窗,其實就對應了三個不同的程式:

  • 火狐瀏覽器:可以上網,我們開啟了三個不同的頁面。

  • 檔案管理器:可以管理我們 Windows 系統裡的各種檔案。

  • 記事本:Windows 下的基礎文字編輯器。

我們可以看到,這三個程式設計的目的都是很明確的,各司其職:瀏覽器負責上網瀏覽網頁,檔案管理器管理電腦的檔案,記事本使我們可以編輯文件。

我們也可以舉一些大家熟悉的遊戲,比如超級瑪麗( SuperMario ),百戰天蟲( Worms,超級好玩的遊戲,曾經和堂哥在我初中時玩的... 小編你又不淡定了),星際爭霸( Starcraft ),等等。這些也都是程式。

C++ 探索之旅 | 第一部分第一課:什麼是 C++

上面的截圖就是星際爭霸的遊戲畫面。怎麼樣?很酷炫吧。是不是也想要學好程式設計去開發遊戲了?

當然了,現在隨著 Unity 3D 的崛起,開發遊戲比以前容易多了。

星際爭霸 2 的地圖編輯器就是用 C / C++ 來寫的。而一般編寫單機 PC / 主機遊戲現在都是 C++ 加上一個指令碼語言(比如 Lua,這地方不需要指令碼引擎多麼高效能,夠用就好)。

所以,是不是對於 C++ 的興趣又濃厚了一點呢?當然,遊戲,我們開發是好,玩遊戲喪志我們是絕對不推薦的。

小編以過來人的經驗告訴大家,自己寫遊戲絕對比你玩遊戲有成就感一萬倍。

執行自己寫的遊戲,那酸爽~,不言而喻。而且會開發遊戲之後,你也自然不會沉迷遊戲了。請看我的 現身說法 | 玩遊戲不如自己開發遊戲 一文。

扯回正題~

我們上面舉了三個程式的例子,又給大家看了一個星際爭霸(也是程式)的遊戲截圖。可能大家會認為,程式就是都能看得見的。但其實並不盡然,並不是所有程式都是可見的。

比如一些後臺執行的服務( service ),或者很多系統程式(比如防火牆等)都是不可見的。雖然不可見,但是這些程式還是兢兢業業地為你工作噢。

雖然上面的星際爭霸的截圖可能讓你很想馬上學會 C++ 程式設計,然後開發屬於自己的遊戲。但是不要急,一口氣是吃不成一個胖子的,只能吹脹一頭牛...

像星際爭霸這樣複雜的大型遊戲,需要十多個人(不都是程式設計,也需要美工,動畫製作等)全時間工作幾年才能開發出來。所以一開始我們要有耐心,可以從一些小程式開始(遊戲是一種程式)。

在這個系列課程中,小編會帶大家一起開發一些 C++ 程式,也會有遊戲。

4. 程式語言


你的計算機(電腦)真的是一個奇怪又複雜的傢伙,這樣說已經算很給它面子了。

我們給它傳遞命令,只能輸送給它 0 或 1(因為電腦裡面有大大小小的數不勝數的電晶體,而它們被用來做「開關」,0 和 1 正好可以用來表示「開啟」或「關閉」這兩個狀態,所以電腦最底層其實都是 0 和 1 這樣的二進位制碼)。

打個比方,我要讓電腦做以下的事:「為我開啟一個資料夾」。我實際上輸給電腦的是(是我隨便寫的,我並不知道怎麼轉換這句話到二進位制碼):

010100111011001100111101010複製程式碼

正如你看到的,這就是你的電腦所會的語言,被稱為「二進位制語言」。它也只會這門語言,可以看到這門語言完全不容易理解。

所以,我們的第一個真正的問題來了:「怎麼和電腦對話呢,難道只能用 0 和 1 嗎?」

你的電腦既不講中文也不講英語。難道我們也要學這門「二進位制語言」嗎?

幸虧不必。假如用這門語言編寫星際爭霸這樣的遊戲,那大概需要一百年吧...

為了簡單起見,我們的計算機學者們就想到:先用其他簡單一些、便於理解的語言(有點像中間人那樣)編寫程式,之後再把它翻譯成電腦的二進位制語言。

這類語言就被統稱為「程式語言」。

當然最不容易的,就是要編寫這樣一個「翻譯」程式。幸虧計算機學者們已經把這樣的翻譯程式寫好了,我們也沒必要重新做了(著實鬆了一口氣)。

所以我們要做的就是告訴電腦:「為我開啟一個資料夾」,這句話會被翻譯成電腦的二進位制碼:

010100111011001100111101010複製程式碼

今天,全球存在上百種程式語言,如果你百度或者 Google 一下,就可以找到一個程式語言的列表。

我們就不一一列舉了。這些程式語言不盡相同,各有特色,但是都有一個共同的目的:使我們可以用比二進位制碼更簡單的方式和電腦「對話」。

一般的程式語言都是這樣工作的:

  1. 我們用一門程式語言(例如 C++ )的指令來寫我們的程式(原始碼)

  2. 這些原始碼被一個「翻譯」程式翻譯成電腦能理解的二進位制碼

  3. 電腦就能讀取最終的二進位制碼,來執行我們要它執行的事啦

我們用一張圖來總結一下:

C++ 探索之旅 | 第一部分第一課:什麼是 C++

這個「翻譯」程式的正式名字是:編譯器(英語是 Compiler )。這是一個必不可少的工具(當然,對於解釋型語言,如 Python,就需要直譯器了。我們暫不深究,大家可以百度一下:編譯型語言和解釋型語言。但其實最基本的原理是一樣的:都需要一個「翻譯」程式把原始碼翻譯成二進位制碼)。

那麼,我們如何在這上百種程式語言中選取一種來學習呢?哪一個是最好的呢?C++ 是好的選擇嗎?

其實,一個程式設計師通常會幾種程式語言,很少有隻會一種的。

就好像我們中國人會說中文,但一般也會英語吧。有的人更厲害,會好幾種語言。

當然了,初學程式設計,我們並不需要幾種語言同時一起學,那會分散注意力。

一開始,我們只要學一種就好了,等融會貫通了以後,學其他的就簡便很多。比如你英語好,那麼學法語就會比只會中文的人更輕鬆。

好訊息是你可以隨自己喜歡,想先學哪種程式語言就先學哪種。雖然小編個人推薦先從 C 語言開始,當然從 C++ 或 Java 開始也未嘗不可。你從 Python 開始也可以。

不過既然這個系列課程是關於 C++ 的(小編你沒忘記就好...),那麼我們就來看看 C++ 相比於其他程式語言的獨有特色吧。

5. C++與其他語言的比較


在上百種程式語言中,不可諱言,有些確實比較著名,而有些卻幾乎無人問津。

這和人類的語言是類似的:總有那麼幾種語言如英語,法語,西班牙語,德語,日語,中文,是比較流行的,而爪哇語,模里西斯語,或者非洲某部落的語言,就很少有人學習了。

C++ 毫無疑問是最流行的程式語言之一,在著名的 langpop.com/ (貌似最近上不去了)網上有很多程式語言的排名,以圖表的形式:

C++ 探索之旅 | 第一部分第一課:什麼是 C++

上圖是 Google 搜尋的關鍵字數。可以看到:C 語言,Java 和 C++ 是前三名。

再如著名的程式語言排行榜 TIOBE 在 2017 年 4 月的榜單:

C++ 探索之旅 | 第一部分第一課:什麼是 C++

TIOBE 排行榜是根據網際網路上有經驗的程式設計師、課程和第三方廠商的數量,並使用搜尋引擎(如 Google、Bing、Yahoo!)以及Wikipedia、Amazon、YouTube 統計出排名資料,只是反映某個程式語言的熱門程度,並不能說明一門程式語言好不好,或者一門語言所編寫的程式碼數量多少。

那麼問題來了:是否應該將一門語言的流行程度作為程式設計首選語言的考慮因素呢?

雖然並不是一定的,但確是一個考量因素。因為有些語言很有意思或者設計得很好,但使用不是太多,比如 Lisp 語言。

如果一門程式語言使用不廣泛,就有個缺點:「技術支援少,不容易找到能為你答疑解惑的人」。

這也是 C++ 適合作為首選語言的原因。你在這條學習路上不會孤單,有很多仁人志士都已經「上了賊船」,隨時為你保駕護航。

當然了,除了流行性,程式語言之間的比較還有另一個標準:高階語言還是低階語言。

我們說有些語言是高階語言,另一些則是低階語言。

這裡的「高階」與「低階」並不是好與不好的區別,而是偏離二進位制碼(電腦的機器語言)越遠就越高階,越接近人類思維模式就越高階。

一般來說,高階語言使用更簡便,程式設計更快捷。而低階語言往往相對難一些,不過更易於控制電腦。所以說這是雙刃劍。

那麼 C++ 呢?

可以把 C++ 歸為「低階語言」。再宣告一次,這決不是說它比較低等。你想把它歸為「高階語言」也沒有關係。

「高階語言」和「低階語言」是一種比較而言,如果和二進位制碼或者組合語言相比,那麼 C 語言和 C++ 也算是高階語言了。

雖然說 C++ 程式設計可以是很複雜的,但是 C++ 卻非常強大,而且執行速度很快。

下圖是一個語言層次的展示:

C++ 探索之旅 | 第一部分第一課:什麼是 C++

可以看到,在上圖中,有一種語言最接近機器的二進位制碼語言,那就是彙編(英語是 Assembly ),也是大家有空值得學習的語言。

學習彙編不需要太深入,入門就好,可以使你更好地理解記憶體機制,指標是怎麼回事,還有電腦工作的一些原理。

推薦王爽老師的 《組合語言》 這本書,寫得很好。不枯燥,而且由淺入深。

####C++的優勢


  • 很流行:我們從之前的圖表已經看出,C++ 躋身全球最流行的程式語言前列。所以我們可以很輕鬆地在網上找到很多 C++ 的技術文件,程式設計實踐,也有很多 C++ 的論壇,你可以提問,查詢資料。

  • 執行速度快:算是執行速度非常快了。這從 C++ 是遊戲領域熱門語言就可知曉,因為很多大型遊戲需要極快的執行速度。當然除了遊戲,C++ 還被用於金融行業和軍事的程式。

  • 可移植性,跨平臺性:一個同樣的 C++ 程式幾乎可以不加修改地執行在 Windows,Linux 和 Mac OS 作業系統上,其他系統也類似。我們省去了重寫程式的麻煩。

  • 眾多第三方庫:第三方庫,有點類似語言的外掛,或者擴充套件。對於程式語言來說,它一定自帶了標準的庫可供呼叫。比如一些基本的輸入輸出函式,是語言本身的標準庫裡定義好的。關於庫和函式,我們之後的課程再討論。Qt 就是一個很著名的 C++ 第三方庫。我們可以用 Qt 來編寫圖形介面的各種程式。

  • 多種程式設計方式:我們可以用程式導向的方式編寫 C++ 程式,也可以用其物件導向的特性,還有 STL 這樣的標準模板庫。這些多樣的形式使得 C++ 異常靈活和強大,但是也比較複雜。之後我們都會學到。

當然,說了這麼多 C++ 的優點,並不是說 C++ 就沒有缺陷。它也有自己的缺點,特別是其複雜性,可以說 C++ 是目前最複雜的程式語言。就像 C 語言有不少缺陷和陷阱一樣,建議閱讀 《C陷阱與缺陷》 一書。

正如上面所說,C++ 算是和 C 語言一樣比較偏底層的語言,這也給了我們直接操作記憶體的能力。但是能力越大,責任越大。假如未能正確使用 C++,那麼我們的程式很容易卡死或者潛伏危機。

但也沒什麼好怕的,這個系列課程就是為了讓大家能夠很好地控制
C++ 這個很厲害的「熊孩子」,讓它成為「功夫熊貓」。

####C++程式之初見


為了給大家展示 C++ 程式到底大致是個啥樣子,我們就給出一段程式碼,是最基本的:在螢幕上顯示 Hello World 這兩個英文單詞(也就是「你好,世界」):

#include <iostream>

using namespace std;

int main()
{
  cout << "Hello World!" << endl;
  return 0;
}複製程式碼

是不是和 C 語言的 Hello World 例程很像呢。

6. C++的歷史


要說 C++ 的歷史,就先要回顧一下程式設計的歷史。程式設計的歷史雖然不是 long long time ago(很久很久以前),那也是 long time ago(很久以前)了。

一開始,計算機先驅們程式設計的時候,可沒有今天那麼好的條件呀。那時候哪有滑鼠和鍵盤,只能用「打孔卡」這樣的東西:

C++ 探索之旅 | 第一部分第一課:什麼是 C++

打孔卡是一塊紙板,在預先知道的位置利用打洞與不打洞(表示開和關,類似 0 和 1 的二進位制碼)來表示數字訊息。

摘自維基百科的小科普:

1801 年,法國人約瑟夫·瑪麗·雅卡爾發明了打孔卡用在控制織布機織出的圖案。

1880 年代,美國人口調查局職員霍列瑞斯發明了用於人口普查資料的穿孔卡片及機器,並用於 1890 年美國人口普查,僅 6 周就完成了統計。而此前 1880 年美國人口普查的資料全靠手工處理,歷時 7 年才得出最終結果。霍列瑞斯建立的公司,發展為今日的 IBM

1890 年代至 20 世紀初,穿孔卡廣泛運用在商業和相關文書。20 世紀期間,打孔卡應用在單位記錄機作為輸入端、處理和計算機程式。早期的數字電腦運用打孔機已輸入資訊的打孔卡當做計算機程式和資料的主要輸入媒介。

1928 年,IBM 發明的 80 列、矩形孔卡片,成為事實上的標準。其工作原理如下:編號為 0 至 9,總計 10 行;以及一塊區域,用於第
11、第 12 行(注意,沒有編號為第 10 的行)。每列的穿孔組合用於表示單個字元。

IBM 為電腦科學做出如此大貢獻。不愧是「藍色巨人」,百年老字號。

####語言的演化史


打孔卡在今天看來當然是極為低效的工具了,但在當時確實是好發明。

時代在進步,我們的程式設計工具和程式語言也在進步。

  • 1958 年:那個時候的電腦可不像今天這麼小巧,最大的可以達到一間房子那麼大,重達好幾噸,耗電好幾十千瓦,耗資幾十萬美元。那個時候出現了一種叫做 Algol 的程式語言。

  • 1960 至 1970 年:計算機先驅發明了新的語言,叫做 CPL,後來又發展成為 BCPL。後來被稱為 B 語言。

  • 1970 年:老爺子 Dennis Ritchie(丹尼斯.裡奇)來「踢館」,發明了震驚世界的C語言。C 語言是目前絕大多數程式語言的鼻祖,很多語言就是用 C 語言來寫成的,比如 C++,Java,Python,PHP,等等。目前仍是使用最多的語言之一,而且在嵌入式領域舉足輕重。著名的作業系統都是 C 語言寫的:Unix,Linux,Windows,Mac OS,等。

  • 1983 年:又過了十幾年,我們本課程的主角:C++ 誕生了。C++其實是在 C 的基礎上加了很多新的東西,使其變得更加強大,也能夠用更多的形式程式設計。

那麼問題來了:如果 C++ 被稱為 C 語言的一種「演化版本」,那麼為什麼這麼多人還仍舊使用 C 語言呢?為什麼不直接選擇更完善 C++ 呢?

因為不是每個人都需要 C++ 帶來的額外功能的,C 語言更接近底層,所以 Windows,Linux 和 Mac OS 這樣的作業系統都是用 C 語言為基礎來設計的。

還有一個原因:C++ 確實比 C 語言更復雜一些。如果我可以用水果刀削蘋果,那何必用青龍偃月刀呢。

####C++的設計者


1983 年,Bjarne Stroustrup(本賈尼·斯特勞斯特盧普。一直記不住這位前輩的名字,好難記啊。不過他有個簡稱,就是 B.S,還好不是倒過來... 還是我們 C 語言的老爺子 Dennis Ritchie 好記 :P )發明了 C++ 語言。原因是他對 C 語言的侷限性有些不滿意,想要發明一門有更多可能性的語言。

C++ 探索之旅 | 第一部分第一課:什麼是 C++

摘自百度百科的介紹:

Bjarne Stroustrup 於 1950 年出生于丹麥,先後畢業於丹麥阿魯斯大學和英國劍橋大學,AT&T 大規模程式設計研究部門負責人,AT&T、貝爾實驗室和 ACM 成員,現任德州農工大學計算機系首席教授。1979 年,B. S 開始開發明一種語言,當時稱為 「C with Classes」(帶類的 C ),後來演化為 C++。1998 年,ANSI/ISO C++ 標準建立,同年,B. S 推出了其經典著作《The C++ Programming Language》的第三版。

C++ 語言是以 C 語言為基礎的,支援 C 語言的所有語法和幾乎所有的技術,因此也有人把 C++ 語言看作是 C 語言的超集。同時 C++ 語言支援物件導向程式設計方法的所有概念,它是一種非常實用的、功能極為強大的程式語言,相對而言較難掌握。

事實證明,他做到了,C++ 確實很豐富和強大。這也使得很多後繼的程式語言受到 C++ 的啟發,比如 Java。

雖然 C++ 這門語言一把年紀了,但是現在仍舊不斷在被更新。估計設計者們也知道 C++ 比較複雜,所以在新版本中有把它改簡單一些,也增加更多現代程式設計元素。

7. C++經典書籍


  • 《The C++ Programming Language》(《C++程式設計語言》):C++ 之父 Bjarne Stroustrup 寫的書籍,還有比這更權威的麼?不過對初學者可能有點難,就好像 Dennis Ritchie 寫的《C程式設計語言》也是初學有點難。不僅對語言,而且對語言周邊的一些如發展史、語義哲學都有比較詳細的描述。對語言的描述較為全面,同時包含一部分和程式庫相關聯的知識,有一定深度,適合有一定程式語言基礎的初學者,翻譯質量不錯,價格適中。

  • 《C++ Primer Plus》:適合C++初學者的書籍。和《C Primer Plus》類似都是不錯的入門教材。覆蓋面較全,章節安排比較合理,由淺入深,也很容易,因此失去了一些深度。價格比較便宜,但翻譯質量略有不足。

  • 《C++ Primer》:久負盛名的 C++ 經典教程,其內容是 C++ 大師 Stanley B. Lippman 豐富的實踐經驗和 C++ 標準委員會原負責人 Josée Lajoie 對 C++ 標準深入理解的完美結合,已經幫助全球無數程式設計師學會了 C++。對 C++ 基本概念和技術全面而且權威的闡述,對現代 C++ 程式設計風格的強調,使本書成為 C++ 初學者的最佳指南;對於中高階程式設計師,本書也是不可或缺的參考書。比《C++ Primer Plus》難一些。

  • 《Effective C++》:C++ 牛人的大手筆,以條款的形式回答了程式設計師在使用 C++ 時經常提出的「應該注意些什麼?」,「應該避免什麼?」,「應該怎樣去解決?」,「為什麼?」 等問題。C++ 程式設計師想要讓自己的水平上升到更高的檔次,此書必看。價格稍貴,有一定難度,不適合初學者。

就推薦這四本吧,其他書籍還有很多。其實你能把這四本好好看完、學懂,那你就是 C++ 牛人了。如果你英語好,推薦看原版。

最後,不建議看譚浩強(不管是他的 C 語言書還是 C++ 書,都不推薦。學究味重,程式碼風格和編碼思想不好(不良程式碼風格毀一生),也常有錯誤,總之越看越暈。)。純屬個人淺見。


讀完此文,是不是心中也激動不已,想要擼起袖子,好好學一門程式語言呢?其實小編我撰寫此文時何嘗不是激動不已呢。
當年我讀《觀止-微軟建立NT和未來的奪命狂奔》這樣的程式設計報告文學作品時也是心潮澎湃,對於成為程式設計大牛無比嚮往。
其實程式設計真的很有趣,有一種創造和掌控一切的小快感。當然,不要頭腦發熱就好。

8. 總結


  1. 程式使我們可以在電腦上做很多事情:上網,編輯文件,操作檔案,玩遊戲,等等。

  2. 為了實現各種程式,我們需要用計算機能懂得的指令來寫。而程式語言就是來做這個活的,對應的指令我們稱為原始碼( Source Code )。

  3. 每種程式語言的語法都不一樣,但是最終交給電腦執行前,都要先「翻譯」成二進位制碼,因為我們的電腦兄只認得 0 和 1 組成的二進位制碼。這個將程式語言翻譯成二進位制碼的工具被稱為「編譯器」( Compiler ),每種語言有對應的編譯器。

  4. 在眾多的程式語言中,C++ 是很流行和執行速度相對快的一門語言。可以說 C++ 是 C 語言的演進,因為在 C 語言所提供的基礎程式設計概念上,它還加入了物件導向的程式設計模型和其他元素,我們之後的課程會介紹物件導向這一卓越的思想。

9. 第一部分第二課預告


今天的課就到這裡,一起加油吧!

下一課我們學習:C++探索之旅 | 第一部分第二課:C++程式設計的必要軟體


微信公眾號「程式設計師聯盟」ProgrammerLeague
我是謝恩銘,在巴黎奮鬥的軟體工程師。
我的簡介
我的經歷
熱愛生活,喜歡游泳,略懂烹飪。
人生格言:「向著標杆直跑」

相關文章