當前位置:
首頁 > 最新 > 李鵬飛:C語言指針和函數詳解

李鵬飛:C語言指針和函數詳解

第1章:計算機語言和程序設計語言

01:計算機語言和計算機程序設計語言不是一個概念

要學習計算機程序設計,我們首先要知道:計算機語言和程序設計語言不是同一個概念。在這個世界上,語言的概念是很寬泛的,不要狹義的理解為:只有漢語、英語、德語這樣的語言才算語言。你怎麼知道貓的叫聲不是貓的語言呢?狗的叫聲也一樣、狼的嚎叫不是呼喊其夥伴嗎?這些是生物界的語言代表,我甚至懷疑:所有物種都有其自身的語言,只是我們不知道或者沒有探索清楚罷了。生物是有語言的,機器呢?機器也有自己的語言。你要使用機器,就必須按照機器的語言來完成。比如,該從什麼地方去操作,操作規程是什麼?你要使用手機,你就必須使用手機能識別的方式進行操作,換成其他途徑,你和機器就無法交流了。這個概念不好理解,我們舉幾個例子好了。

l你要駕駛汽車,就要使用汽車能理解的語言,如何操作離合器、方向盤

l你要使用電視,就要使用電視能理解的語言,比如遙控器、換台等。

如果我要使用計算機,就必須按照計算機能理解的語言來進行操作。否則,計算機也是聽不懂的,既然聽不懂,就沒有交流,沒有交流,就不能由你驅使。好吧,我們現在將計算機設想為一個外國人,你想讓外國人像牛一樣的為你工作,你只能有下面幾種辦法:

l你用中文向外國人發出指令,即:命令他做事。

l你讓外國人能聽懂你說的話,你也可以命令他做事。(讓計算機能聽懂人類語言是現在非常重要的研究方向,即:自然語言處理,屬於人工智慧範疇。)

l請個翻譯,能將你說的話翻譯為外語,也同樣可以讓外國人為你做事。

在計算機世界,計算機說的話其實是二進位的,至於二進位是什麼東西,目前,我們不深入下去。對於計算機專業、軟體專業、信息技術或自動化專業及類似專業的人來說,你應該自己知道二進位的含意。對於其他的編程語言學習者,如果你暫時不知道,就先忽略吧,對你而言,你只要知道:二進位就是計算機語言就可以了。不太影響我們後續的學習。好了,你說的是計算機編程語言,計算機說的是二進位,這是兩種語言,不是嗎?所以,你需要一個翻譯。在程序設計領域,我們稱這個翻譯為:編譯器。編譯器將你用程序設計語言設計的程序翻譯成計算機語言的過程,我們就稱之為:編譯。編譯器有很多種,等到你進入角色後,可以慢慢去了解。但是,我們從頭至尾使用的編譯器叫:G++

如果完全按照人類語言的方式來編程,目前的技術還達不到,但是:這是一個非常重要的研究領域,即:自然語言處理。完全按照計算機語言的方式來編程,對計算機來說,這很方便。但是,對人來說,就不自然了,這會極度的導致編程效率的低下和容易出錯。所以,現代編程語言幾乎都是類自然語言的,所謂類自然語言,就是:和人類語言很接近。當然,更多的是:和英文接近。

02:引入幾個術語

為了我們之間能進行很好的溝通,現在我們要引入幾個術語,分別是:

l源程序:通常是用某種程序設計語言書寫的文件,後綴名由具體的編譯器來決定。比如C/C++源程序的後綴可以是cpp、c或cc,通常,我們使用cpp作為C++源程序文件的後綴。源程序通常是純文本的,所謂的純文本就是比如用windows的記事本書寫的文件,就是純文本文件。

l編譯器:用來將某種源文件翻譯為計算機可執行文件的程序,比如G++或者Java的java虛擬機等。

lIDE(Integrated Development Environment),中文稱為:集成開發環境。就像你用Word來排版文章一樣。如果用記事本來書寫源程序文件,通常不是很方便。所以,書寫程序代碼,也通常使用某種集成開發環境,比如:我們使用CodeBlocks作為我們的集成開發環境。

l集成開發環境和編譯器都是軟體,既然是軟體,就涉及到安裝在什麼操作系統上。我們使用CentOS 6.8 64位操作系統。當然,我們也會講解如何在Windows上安裝集成開發環境,但是:我們強烈推薦你使用CentOS 6.8 64位操作系統來學習本書的所有代碼。

雲計算和人工智慧是未來編程的主要方向,這些實現,通常都使用Linux操作系統,所以,如果你致力於未來的長足發展,建議你:開始就使用Linux來搭建你的學習系統,並且很多專業的C/C++開發人員真的是使用Linux或者Unix的。當然,如果有障礙,你也可以先使用Windows系統來進行學習,總之:不要因為開發環境的搭建,讓自己無法進步。語言的學習是我們現在的目標,不要鑽牛角尖。(下次課程,我們將講述:如何部署集成開發環境!)


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 灑居智邦 的精彩文章:

TAG:灑居智邦 |