1. 程式人生 > >C/C++,最經典的程式語言.

C/C++,最經典的程式語言.

1、從C到C++
計算機誕生初期,用機器語言或組合語言編寫程式;
第一種高階語言FORTRAN誕生於1954年;
BASIC語言(1964)是由FORTRAN語言的簡化而成的是為初學者設計的小型高階語言;
C語言是1972年由美國貝爾實驗室的 D.M.Ritchie 研製成功的。它是為計算機專業人員設計的;
大多數系統軟體和許多應用軟體都是用C語言編寫的。隨著軟體規模的增大,用C語言編寫程式漸漸吃力了,於是便創造出了C++語言。

2、C++的特點
C++是由 AT&T Bell實驗室 於20世紀80年代初在C語言的基礎上成功開發出來的。C++保留了C語言原有的所有優點,並增加了面向物件的機制。
C++是由C語言發展而來的,與C相容。用C語言寫的程式基本上可以不加修改地用於C++。從C++的名字可以看出它是C的超集。C++既可用於面向過程的程式設計,又可用於面向物件的程式設計,是一種功能強大的混合型程式設計語言。
備註:C++不是純面嚮物件語言。

3、C++是對C語言的“增強”
(1) 在原來面向過程機制的基礎上,對C語言的功能做了很多擴充。
(2) 增加了面向物件的機制。
面向物件程式設計,是針對開發較大規模的程式而提出來的,目的是提高軟體開發的效率。不要把面向物件和麵向過程對立起來,面向物件和麵向過程不是矛盾的,而是各有用途互為補充的。
所以,通俗來講,大家在學習的過程中不要把C語言和C++做為兩門獨立或者對立的語言來學習,本身他們就可以看成是一門語言,任何一款支援C++的編譯工具都支援C語言。C++就是C語言的超集,包括了所有C語言的特性,所以你把C++學會了,C語言自然也就會了。如果你之前學過C語言,那麼再學習下C++的面向物件思想,那麼兩者你也就都會了。

給大家舉個例子:
學習程式設計的人針對譚浩強這個名字應該幾乎都聽過。譚浩強老師的C語言/C++語言的程式設計書籍可以說是國內很多大學的標杆教材了。我讀大學時候的C語言教材就是譚浩強老師的。
他有一本《C語言程式設計》專門講解C語言的,還有一本《C++程式設計》專門講解C++的,書挺厚的,包括了C語言的部分。還有一本是《C++面向物件程式設計》是專門講解C++的,所以可以這麼說:《C語言程式設計》+《C++面向物件程式設計》=《C++程式設計》,這也充分體現了C語言和C++的關係。
說到譚浩強老師我這裡要說一說了。國內很多讀者對譚浩強老師褒貶不一。但我個人確實是比較推崇譚浩強老師的書,大學時候就是用他的書籍入門的。有很多人說他的書籍有錯誤,講解的不好。我要說這個錯誤不怪他,《C語言程式設計》第一版剛出來的時候,系統還是Win98,16位的,所以相關一些型別佔用的位元組數等等,跟我們現在使用的x86或者x64根本不一樣,所以才出現了網友口中的錯誤。不過《C語言程式設計》、《C++程式設計》 等譚浩強老師的書籍後續都有新版本,所以大家也不要總拿第一版或者老版本來說事兒。

4、用途:C語言和C++都能做什麼呢?
C語言:作業系統底層、系統驅動、微控制器、嵌入式方面 等等;
C++:網路遊戲開發、音視訊技術、Socket網路通訊,另外,蘋果/谷歌/微軟 等大型軟硬體公司的系統或者軟體上面都支援C/C++語言的整合開發。
你常用的軟體大多數都是C++寫的,例如:Office軟體:MS Office,WPS Office,OpenOffice/LibreOffice,你所用的Windows也用了大量的C++,你說你在用C#和SQL,那我告訴你你用的 VS IDE 核心部分是C++寫的,你用的C#,C# 的.Net執行框架也是C++寫的,你用的Sql資料庫,是Sql Server吧?很不幸,Sql Server也是cpp寫的、你上網頁在用瀏覽器嗎?很不幸,瀏覽器核心都是C++寫的,介面大多數瀏覽器介面也是C++寫的,你聊天用的 QQ、YY、Skype 等也是C++寫的。這些都是你絕對有在用的,至於其他,還有很多,防毒軟體、PhotoShop、Maya,N多行業軟體,幾乎所有的端遊 等等,都是C++寫的。你問我C++能做什麼實際的東西,我告訴你什麼也做不了,你信嗎?
C++ 的幾個常見的發展方向:客戶端,遊戲,服務端,嵌入式,移動端(移動只要是跨平臺的移動端用C++寫通用部分,GUI可以用平臺特性,也可以用C++的跨平臺框架)

針對介面UI方面C++的選擇也是很多的,其實C++還是擅長“內功”的方面。如果你想帶個GUI介面的話,也有很多類似Qt之類的框架和介面庫可以使用,網上有很多,而且很多都跨平臺,還開源,不管是 Windows,還是Mac,還是Linux,還是移動端平臺,通吃的。本身C/C++就是跨平臺的。
另外,說點大家感興趣的,什麼遠端控制軟體,什麼木馬,什麼外掛等等,可以說95%以上都是用C/C++來寫的。
難道這麼多的用途還不值得大家來好好學學C/C++嗎?
另外,聞道有先後、術業有專攻,C++雖然功能很強大,幾乎什麼都能做,但有的地方也是不適合,不是不能做而是不適合。比如網頁開發,C++也能做,但是還是建議使用Java-Web或者PHP之類的語言來做,畢竟他們就是為了Web開發而生的。
(小編推薦一個學C語言/C++的學習群【 639912742】,入群即送C/C++全套學習資料)