C語言與C的區(qū)別總結_第1頁
C語言與C的區(qū)別總結_第2頁
C語言與C的區(qū)別總結_第3頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、C語言和C+的區(qū)別首先,我們來看看C語言與C+的概念:1. C語言是一種計算機程序設計語言,它既具有高級語言的特點,又具有匯編語言的特點。它由美國貝爾研究所的D.M.Ritchie于1972年推出,1978年后,C語言已先后被移植到大、中、小及微型機上,它可以作為工作系統(tǒng)設計語言,編寫系統(tǒng)應用程序,也可以作為應用程序設計語言,編寫不依賴計算機硬件的應用程序。它的應用范圍廣泛,具備很強的數(shù)據處理能力,不僅僅是在軟件開發(fā)上,而且各類科研都需要用到C語言,適于編寫系統(tǒng)軟件,三維,二維圖形和動畫,具體應用比如單片機以及嵌入式系統(tǒng)開發(fā)。2.1) C+這個詞在中國大陸的程序員圈子中通常被讀做“C加加”,而

2、西方的程序員通常讀做“C plus plus”,“CPP”。 它是一種使用非常廣泛的計算機編程語言。C+是一種靜態(tài)數(shù)據類型檢查的、支持多重編程范式的通用程序設計語言。它支持過程化程序設計、數(shù)據抽象、面向對象程序設計、泛型程序設計等多種程序設計風格。2) 隨著軟件規(guī)模的增大,用C語言編寫程序漸漸顯得有些吃力了。C+是由AT&T Bell(貝爾)實驗室的Bjarne Stroustrup博士及其同事于20世紀80年代初在C語言的基礎上開發(fā)成功的 C+保留了C語言原有的所有優(yōu)點,增加了面向對象的機制。C+是由C發(fā)展而來的,與C兼容。用C語言寫的程序基本上可以不加修改地用于C+。從C+的名字可

3、以看出它是C的超越和集中。C+既可用于面向過程的結構化程序設計,又可用于面向對象的程序設計,是一種功能強大的混合型的程序設計語言。C+對C的“增強”,表現(xiàn)在六個方面:(1) 類型檢查更為嚴格。(2) 增加了面向對象的機制。(3)增加了泛型編程的機制(Template)。(4)增加了異常處理。(5)增加了運算符重載。(6)增加了標準模板庫(STL)。面向對象程序設計,是針對開發(fā)較大規(guī)模的程序而提出來的,目的是提高軟件開發(fā)的效率。不要把面向對象和面向過程對立起來,面向對象和面向過程不是矛盾的,而是各有用途、互為補充的。學習C+,既要會利用C+進行面向過程的結構化程序設計,也要會利用C+進行面向對象

4、的程序設計,更要會利用模板進行泛型編程。C和C+的區(qū)別:1 C是一個結構化語言,它的重點在于算法和數(shù)據結構。C程序的設計首要考慮的是如何通過一個過程,對輸入(或環(huán)境條件)進行運算處理得到輸出(或實現(xiàn)過程(事務)控制)。2 C+,首要考慮的是如何構造一個對象模型,讓這個模型能夠契合與之對應的問題域,這樣就可以通過獲取對象的狀態(tài)信息得到輸出或實現(xiàn)過程(事務)控制。 所以C與C+的最大區(qū)別在于它們的用于解決問題的思想方法不一樣。之所以說C+比C更先進,是因為“ 設計這個概念已經被融入到C+之中 ”。分析C+與C的不同: 一、類,類對于初學者,它是一個累贅。類的封裝使得初學者對程序產生厭倦,感到不適和

5、麻煩。 二、引用,引用是C+中最好盡量不要用它,除非萬不得已。引用對于初學者就更容易產生混淆,不知道哪個是引用,哪個是變量。 三、函數(shù)的重載,初學者學函數(shù)的重載好像沒什么壞處,但是,這會使初學者潛意識里對C語言的變量類型的重要性產生淡化,要記住C語言是對變量類型最敏感了的,變量的類型在C語言里的重要性是不言而喻的。 四、流操作符,和上面同樣的道理,使得對變量類型的重要性產生淡化,有時會產生使初學者莫名其妙的結果。 五、操作符重載,典型的高級應用,初學者可能根本用不著,這個東東會讓他們覺得C+很難,門檻高,看不懂。六、繼承,以及虛函數(shù),看起來深奧,實用價值很低。 七、誤區(qū):問:C+是面向對象化的

6、而C是面向過程化的?答:第二對,第一問錯,C+并非完全面向對象化,真正的面向對象化的語言恐 怕只有Java才算得上。問:C+能實現(xiàn)C所不能的功能嗎?答:至少我還沒有發(fā)現(xiàn)問:學了C再學C+有障礙嗎?比如程序設計思想答:至少我還沒有看見誰有此癥狀。問:學了C再學C+又要重頭開始嗎?答:不,C+下可以實現(xiàn)C語言的一切功能。問:我學完了C一定還要學C+才能編程嗎?答:完全沒必要。問:C+比C好在哪里?答:更加符合軟件工程學問:學完了C再學C+是不是很容易?答:那要看你是不是真正的學完了C語言。 C與C+的最大區(qū)別:在于它們的用于解決問題的思想方法不一樣。之所以說C+比C更先進,是因為“ 設計這個概念已

7、經被融入到C+之中 ”,而就語言本身而言,在C中更多的是算法的概念。那么是不是C就不重要了,錯!算法是程序設計的基礎,好的設計如果沒有好的算法,一樣不行。而且,“C加上好的設計”也能寫出非常好的東西。 對語言本身而言,C是C+的子集,那么是什么樣的一個子集?從上文可以看出, C實現(xiàn)了C+中過程化控制及其它相關功能,而在C+中的C(我稱它為“C+”),相對于原來的C還有所加強,引入了重載、內聯(lián)函數(shù)、異常處理等等玩藝兒,C+更是拓展了面向對象設計的內容,如類、繼承、虛函數(shù)、模板和包容器類等等。 再提高一點,在C+中,數(shù)據封裝、類型這些東東已不是什么新鮮事了,需要考慮的是諸如:對象粒度的選擇、對象接口的設計和繼承、組合與繼承的使用等等問題。 所以相對于C,C+包含了更豐富的“設計”的概念,但C是C+的一個自洽子集,也具有強大的功能,同樣值得學習幾點學習建議:1基本概念很重要。無論學C,還是學C+,基本概念都是第一位的,也是比較困難的,但只有把握了基本概念才能把握整體脈絡,才能居高臨下。2C是C+的子集,它的基本概念和設計方法相對比較容易理解,初學者可從它入手。3如果要學好C+,建議初學者最好別在如VC,BCB平臺下寫程序,那種自動化的代碼生成,花花綠綠的界面,會讓你手足無措。最好先找一片空地(unix,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論