




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、C語言與C+的區(qū)別.txt心若無塵,一花一世界,一鳥一天堂。我曾經(jīng)喜歡過你,現(xiàn)在我依然愛你希望月亮照得到的地方都可以留下你的笑容那些飄滿雪的冬天,那個不帶傘的少年,那句被門擋住的誓言,那串被雪覆蓋的再見C/C+是指C語或C+,是指一系列的語言C和C+的關(guān)系:正如樓上所說的是win98跟winXP的關(guān)系。C+是在C的基礎(chǔ)上增加了新的理論,玩出了新的花樣。所以叫C加加。C和C+的區(qū)別:C是一個結(jié)構(gòu)化語言,它的重點在于算法和數(shù)據(jù)結(jié)構(gòu)。C程序的設(shè)計首要考慮的是如何通過一個過程,對輸入(或環(huán)境條件)進行運算處理得到輸出(或?qū)崿F(xiàn)過程(事務(wù))控制)。C+,首要考慮的是如何構(gòu)造一個對象模型,讓這個模型能夠契合
2、與之對應(yīng)的問題域,這樣就可以通過獲取對象的狀態(tài)信息得到輸出或?qū)崿F(xiàn)過程(事務(wù))控制。 所以C與C+的最大區(qū)別在于它們的用于解決問題的思想方法不一樣。之所以說C+比C更先進,是因為“ 設(shè)計這個概念已經(jīng)被融入到C+之中 ”。再引用高手一些話:C+與C有什么不同呢?我們現(xiàn)在一步步地來分析一下一、類,類對于初學者,它是一個累贅。類的封裝使得初學者對程序產(chǎn)生厭倦,感到不適和麻煩。 二、引用,引用是C+中最好盡量不要用它,除非萬不得已。引用對于初學者就更容易產(chǎn)生混淆,不知道哪個是引用,哪個是變量。 三、函數(shù)的重載,初學者學函數(shù)的重載好像沒什么壞處,但是,這會使初學者潛意識里對C語言的變量類型的重要性產(chǎn)生淡化
3、,要記住C語言是對變量類型最敏感了的,變量的類型在C語言里的重要性是不言而喻的。 四、流操作符,和上面同樣的道理,使得對變量類型的重要性產(chǎn)生淡化,有時會產(chǎn)生使初學者莫名其妙的結(jié)果。 五、操作符重載,典型的高級應(yīng)用,初學者可能根本用不著,這個東東會讓他們覺得C+很難,門檻高,看不懂。 六、繼承,以及虛函數(shù),看起來深奧,實用價值很低。還有些東東我就不發(fā)表評論了,如:new,delete操作符等七、誤區(qū):以問答形式: 問:C+是面向?qū)ο蠡亩鳦是面向過程化的? 答:第二對,第一問錯,C+并非完全面向?qū)ο蠡嬲拿嫦驅(qū)ο蠡恼Z言恐怕只有Java才算得上。 問:C+能實現(xiàn)C所不能的功能嗎? 答:至少我
4、還沒有發(fā)現(xiàn)問:學了C再學C+有障礙嗎?比如程序設(shè)計思想答:至少我還沒有看見誰有此癥狀。 問:學了C再學C+又要重頭開始嗎? 答:不,C+下可以實現(xiàn)C語言的一切功能。 問:我學完了C一定還要學C+才能編程嗎? 答:完全沒必要。 問:C+比C好在哪里? 答:更加符合軟件工程學 問:學完了C再學C+是不是很容易? 答:那要看你是不是真正的學完了C語言。希望你能對C/C+概念上有所了解。c+是一種程序設(shè)計語言 vc是指Microsoft visual C+ 是用于開發(fā)c+的程序的集成的開放工具 C是編程語言,c+也是編程語言,c+是C 語言的超集,就是說C+兼容C,不過語言內(nèi)部的具體實現(xiàn)兩者有很大的不
5、同.C+有很多新的特性.VC+是微軟的開發(fā)軟件的集成環(huán)境.里面主要應(yīng)用C+語言,但是,VC+也有一些是自己特有的東西。如上所說,vc和vc+是一回事,都是指微軟的visual c+。vc是c的發(fā)展,c是過程語言,vc是面向?qū)ο蟮摹?c#是微軟的另一個語言,微軟為了擺脫c語言的框架和一些不足另外設(shè)計的完全面向?qū)ο笳Z言。 從某種意義上說vc是介于c語言和c#之間的半對象半過程語言。 現(xiàn)在在微軟的.net平臺里,語言已經(jīng)不是界限。某種意義上說,Java是跨平臺語言,.net是跨語言平臺。 是兩種程序設(shè)計語言C語言的發(fā)展過程 C語言是在70年代初問世的。一九七八年由美國電話電報公司(AT&T)
6、貝爾實驗室正式發(fā)表了C語言。同時由B.W.Kernighan和D.M.Ritchit合著了著名的“THE C PROGRAMMING LANGUAGE”一書。通常簡稱為K&R,也有人稱之為K&R標準。但是,在K&R中并沒有定義一個完整的標準C語言,后來由美國國家標準學會在此基礎(chǔ)上制定了一個C 語言標準,于一九八三年發(fā)表。通常稱之為ANSI C。 當代最優(yōu)秀的程序設(shè)計語言 早期的C語言主要是用于UNIX系統(tǒng)。由于C語言的強大功能和各方面的優(yōu)點逐漸為人們認識,到了八十年代,C開始進入其它操作系統(tǒng),并很快在各類大、中、小和微型計算機上得到了廣泛的使用。成為當代最優(yōu)秀的程序設(shè)計
7、語言之一。 C語言的特點 C語言是一種結(jié)構(gòu)化語言。它層次清晰,便于按模塊化方式組織程序,易于調(diào)試和維護。C語言的表現(xiàn)能力和處理能力極強。它不僅具有豐富的運算符和數(shù)據(jù)類型,便于實現(xiàn)各類復雜的數(shù)據(jù)結(jié)構(gòu)。它還可以直接訪問內(nèi)存的物理地址,進行位(bit)一級的操作。由于C語言實現(xiàn)了對硬件的編程操作,因此C語言集高級語言和低級語言的功能于一體。既可用于系統(tǒng)軟件的開發(fā),也適合于應(yīng)用軟件的開發(fā)。此外,C語言還具有效率高,可移植性強等特點。因此廣泛地移植到了各類各型計算機上,從而形成了多種版本的C語言。 C語言版本 目前最流行的C語言有以下幾種: ·Microsoft C 或稱 MS C ·
8、;Borland Turbo C 或稱 Turbo C ·AT&T C 這些C語言版本不僅實現(xiàn)了ANSI C標準,而且在此基礎(chǔ)上各自作了一些擴充,使之更加方便、完美。 面向?qū)ο蟮某绦蛟O(shè)計語言 在C的基礎(chǔ)上,一九八三年又由貝爾實驗室的Bjarne Strou-strup推出了C+。 C+進一步擴充和完善了C語言,成為一種面向 對象的程序設(shè)計語言。C+目前流行的最新版本是Borland C+4.5,Symantec C+6.1,和Microsoft VisualC+ 2.0。C+提出了一些更為深入的概念,它所支持的這些面向?qū)ο蟮母拍钊菀讓栴}空間直接地映射到程序空間,為程序員提供
9、了一種與傳統(tǒng)結(jié)構(gòu)程序設(shè)計不同的思維方式和編程方法。因而也增加了整個語言的復雜性,掌握起來有一定難度。 C和C 但是,C是C+的基礎(chǔ),C+語言和C語言在很多方面是兼容的。因此,掌握了C語言,再進一步學習C+就能以一種熟悉的語法來學習面向?qū)ο蟮恼Z言,從而達到事半功倍的目的。 C與C+的最大區(qū)別:在于它們的用于解決問題的思想方法不一樣。之所以說C+比C更先進,是因為“ 設(shè)計這個概念已經(jīng)被融入到C+之中 ”,而就語言本身而言,在C中更多的是算法的概念。那么是不是C就不重要了,錯!算法是程序設(shè)計的基礎(chǔ),好的設(shè)計如果沒有好的算法,一樣不行。而且,“C加上好的設(shè)計”也能寫出非常好的東西。 對語言本身而言,C
10、是C+的子集,那么是什么樣的一個子集?從上文可以看出, C實現(xiàn)了C+中過程化控制及其它相關(guān)功能,而在C+中的C(我稱它為“C+”),相對于原來的C還有所加強,引入了重載、內(nèi)聯(lián)函數(shù)、異常處理等等玩藝兒,C+更是拓展了面向?qū)ο笤O(shè)計的內(nèi)容,如類、繼承、虛函數(shù)、模板和包容器類等等。 再提高一點,在C+中,數(shù)據(jù)封裝、類型這些東東已不是什么新鮮事了,需要考慮的是諸如:對象粒度的選擇、對象接口的設(shè)計和繼承、組合與繼承的使用等等問題。 所以相對于C,C+包含了更豐富的“設(shè)計”的概念,但C是C+的一個自洽子集,也具有強大的功能,同樣值得學習 幾點學習建議: 1基本概念很重要。無論學C,還是學C+,基本概念都是第
11、一位的,也是比較困難的,但只有把握了基本概念才能把握整體脈絡(luò),才能居高臨下。 2C是C+的子集,它的基本概念和設(shè)計方法相對比較容易理解,初學者可從它入手。 3如果要學好C+,建議初學者最好別在如VC,BCB平臺下寫程序,那種自動化的代碼生成,花花綠綠的界面,會讓你手足無措。最好先找一片空地(unix,dos),從頭做起,寫幾個大點的程序,數(shù)個回合,再到VC,BCB下看看,你會輕松得很。在我看來,學好C/C+是成為VC,BCB高手的必由之路。 4不要妄想速成,必須得一個byte,一個bit的去摳,盡量搞清楚每一個問題。 5幾本好書: 機械工業(yè)出版社的那套“計算機科學叢書”從C到C+,到面向?qū)ο笤O(shè)
12、計,一應(yīng)俱全,都TMD是經(jīng)典中的經(jīng)典,而且價格公道,童叟無欺。 國內(nèi)也有幾本好書,譚老爺子的書好倒是好,就是程序錯誤太多。強烈推薦清華周之英的現(xiàn)代軟件工程(上、中、下),它是我所見到的國內(nèi)少有的一本好書,精華的精華,要點的要點,細細品來,至少也屬降龍十八掌等級的東東。 網(wǎng)站 為我們提供了C/C+的視頻教程。網(wǎng) 上則為我們提供了C/C+教程電子版。 如何提高C語言的編程能力: 學習C語言,譚浩強的C程序設(shè)計是一部非常好的C語言書籍,學習程序設(shè)計是一個非常漫長的過程,不要著急,一本書多看兩遍三遍,學會交叉學習法,在學習C的過程中,可以看看數(shù)據(jù)結(jié)構(gòu),編譯原理,操作系統(tǒng)等書籍,對編成都是很有幫助的。最
13、開始學習的時候,先不要編一些比較大的程序,多編一些小程序,比如數(shù)組運算,字符組合等等,指針是C語言的精華,是比較復雜的部分??吹侥愕那闆r,編了一個學習系統(tǒng),對語言的駕馭能力還是很不錯的,我相信你,你一定能學習好C語言的。 C+的學習方法或建議 C+是C語言的擴展,學習的難度比較大一些,也是目前學習難度最大的一門語言,相對與C來講,增加了一些新特性,繼承,對象,模板,多態(tài),STL(標準模板庫),充分掌握這門語言需要四年的時間, C+學習經(jīng)典: 1.把C+當成一門新的語言學習。 2.看Thinking In C+,不要看C+變成死相; 3.看The C+ Programming Language和
14、Inside The C+ Object Model,不要因為他們很難而我們自己是初學者所以就不看; 4.不要被VC、BCB、BC、MC、TC等詞匯所迷惑他們都是集成開發(fā)環(huán)境,而我們要學的是一門語言; 5.不要放過任何一個看上去很簡單的小編程問題他們往往并不那么簡單,或者可以引伸出很多知識點; 6.會用Visual C+,并不說明你會C+; 7.學class并不難,template、STL、generic programming也不過如此難的是長期堅持實踐和不遺余力的博覽群書; 8.如果不是天才的話,想學編程就不要想玩游戲你以為你做到了,其實你的C+水平并沒有和你通關(guān)的能力一起變高其實可以時刻
15、記?。簩WC+是為了編游戲的; 9.看Visual C+的書,是學不了C+語言的; 10.浮躁的人容易說:XX語言不行了,應(yīng)該學YY;是你自己不行了吧?。?11.浮躁的人容易問:我到底該學什么;別問,學就對了; 12.浮躁的人容易問:XX有錢途嗎;建議你去搶銀行; 13.浮躁的人容易說:我要中文版!我英文不行!不行?學呀! 14.浮躁的人容易問:XX和YY哪個好;告訴你吧,都好只要你學就行; 15.浮躁的人分兩種:a)只觀望而不學的人;b)只學而不堅持的人; 16.把時髦的技術(shù)掛在嘴邊,還不如把過時的技術(shù)記在心里; 17.C+不僅僅是支持面向?qū)ο蟮某绦蛟O(shè)計語言; 18.學習編程最好的方法之一就是
16、閱讀源代碼; 19.在任何時刻都不要認為自己手中的書已經(jīng)足夠了; 20.請閱讀The Standard C+ Bible(中文版:標準C+寶典),掌握C+標準; 21.看得懂的書,請仔細看;看不懂的書,請硬著頭皮看; 22.別指望看第一遍書就能記住和掌握什么請看第二遍、第三遍; 23.請看Effective C+和More Effective C+以及Exceptional C+; 24.不要停留在集成開發(fā)環(huán)境的搖籃上,要學會控制集成開發(fā)環(huán)境,還要學會用命令行方式處理程序; 25.和別人一起討論有意義的C+知識點,而不是爭吵XX行不行或者YY與ZZ哪個好; 26.請看程序設(shè)計實踐,并嚴格的按照
17、其要求去做; 27.不要因為C和C+中有一些語法和關(guān)鍵字看上去相同,就認為它們的意義和作用完全一樣; 28.C+絕不是所謂的C的“擴充”如果C+一開始就起名叫Z語言,你一定不會把C和Z語言聯(lián)系得那么緊密; 29.請不要認為學過XX語言再改學C+會有什么問題你只不過又在學一門全新的語言而已; 30.讀完了Inside The C+ Object Model以后再來認定自己是不是已經(jīng)學會了C+; 31.學習編程的秘訣是:編程,編程,再編程; 32.請留意下列書籍:C+面向?qū)ο蟾咝Ь幊蹋–+ Effective Object-Oriented Software Construction)面向?qū)ο筌浖?/p>
18、構(gòu)造(Object-Oriented Software Construction)設(shè)計模式(Design Patterns)The Art of Computer Programming; 33.記?。好嫦?qū)ο蠹夹g(shù)不只是C+專有的; 34.請把書上的程序例子親手輸入到電腦上實踐,即使配套光盤中有源代碼; 35.把在書中看到的有意義的例子擴充; 36.請重視C+中的異常處理技術(shù),并將其切實的運用到自己的程序中; 37.經(jīng)常回顧自己以前寫過的程序,并嘗試重寫,把自己學到的新知識運用進去; 38.不要漏掉書中任何一個練習題請全部做完并記錄下解題思路; 39.C+語言和C+的集成開發(fā)環(huán)境要同時學習和掌
19、握; 40.既然決定了學C+,就請堅持學下去,因為學習程序設(shè)計語言的目的是掌握程序設(shè)計技術(shù),而程序設(shè)計技術(shù)是跨語言的; 41.就讓C+語言的各種平臺和開發(fā)環(huán)境去激烈的競爭吧,我們要以學習C+語言本身為主; 42.當你寫C+程序?qū)懙揭话雲(yún)s發(fā)現(xiàn)自己用的方法很拙劣時,請不要馬上停手;請盡快將余下的部分粗略的完成以保證這個設(shè)計的完整性,然后分析自己的錯誤并重新設(shè)計和編寫(參見43); 43.別心急,設(shè)計C+的class確實不容易;自己程序中的class和自己的class設(shè)計水平是在不斷的編程實踐中完善和發(fā)展的; 44.決不要因為程序“很小”就不遵循某些你不熟練的規(guī)則好習慣是培養(yǎng)出來的,而不是一次記住的
20、; 45.每學到一個C+難點的時候,嘗試著對別人講解這個知識點并讓他理解你能講清楚才說明你真的理解了; 46.記錄下在和別人交流時發(fā)現(xiàn)的自己忽視或不理解的知識點; 47.請不斷地對自己寫的程序提出更高的要求,哪怕你的程序版本號會變成Version 100.XX; 48.保存好你寫過的所有的程序那是你最好的積累之一; 49.請不要做浮躁的人; 50.請熱愛C+! - 補充: 對c+學習的一點感想,希望對初學者能有些幫助 1.如果你以前從來沒有接觸過c+,那么選擇的第一本c+教程就顯得尤為重要,我認為你可以參照以下的標準進行選擇: a.對標準c+進行講解,畢竟c+比從前發(fā)生了很大的變化。 b.要求
21、全面,但不要很深,這要有助于你對于c+有一個全面的認識,打好基礎(chǔ),并且易懂的教材還能加快學習的進度,讓自己保持一種成就感。 c.要有完整的范例來講解每一個知識點如何運用,請注意這里所說的完整,并不是一個個代碼片斷。因為由于你以前從未接觸過用c+進行編程,完整的代碼可以使你有一個整體的概念,并且能夠很快去進行大量的實踐,因為變編程是從模仿開始,完整的代碼恰恰告訴你了一個完整的步驟。不必自己去揣測。 d.推薦:c+ primer plus 2.當你有了一定的基礎(chǔ)以后,就要選擇一些書來迅速提高自己。這類書的特點是不僅僅教你如何去運用,而且要叫你如何去思考,并且你讀起來也不是那么輕松。它意味深遠,并不
22、是你讀一遍就能掌握的。 推薦:thinking in c+effective c+more effective c+ c+ programming language.c+ 沉思錄 3.接下來就是對第二步所介紹的書籍進行反復的閱讀,并且進行實踐。由于這些書一位深遠,每個人基于自己的基礎(chǔ)都會有不同的收獲,例如如果你的基礎(chǔ)還沒有達到某一高度,那么你就對一些精深的技術(shù)視而不見,不信?你可以試試,看看當自己有了一定提高之后再來讀從前的一本書,你會發(fā)現(xiàn)許多新的東西。 -我向你推薦一些C+經(jīng)典書籍: c+程序設(shè)計教程 c+編程思想 c+大學教程 c+程序設(shè)計語言 數(shù)據(jù)結(jié)構(gòu)算法與應(yīng)用c+語言描述 c+標準模板
23、庫-自修教程與參考手冊 泛型編程與STL 深度探索c+對象模型 設(shè)計模式-可復用面向?qū)ο筌浖幕A(chǔ) 重構(gòu)-改善既有代碼的設(shè)計 Essential c+ Effective c+ More Effctive c+ C+ primer 前五本應(yīng)該屬于入門書籍,后面的屬于學習難度比較大的,想提高C+的編程能力,看看這些書籍有好處。建議你把編程思想這本書多看看。多做練習題,對提高編程水平的幫助是很大的。 其實語言是相通的,一門語言學會了,學習其他語言就比較容易了。 業(yè)界有這樣一種說法,因為JAVA這門語言包含了C+的一些特性,掌握了C+,就等于掌握了JAVA的80%, 我是一名大三的學生,我也正在學習
24、C+這門語言,一年多的時間,學習的感覺真的很累的,希望能和你成為朋友! 我的QQ:261174630 最后祝你在學習編程的道路上走的更好更遠,祝你學有所成! 其實可以說C+是C的超集,也就是C的擴展,C是C+的子集。C和C+都只是一種語言,并不是說C+是封裝了許多函數(shù)組成API,再組成MFC類庫的語言,而是MFC中封裝了好多C語言、C+語言函數(shù)才組成MFC庫。C、C+是編程語言,但是MFC不是。C和C+都是比較接近于直接操作CPU和內(nèi)存的,所以比很多編程語言運行更高效,但是不可避免地也更容易出問題。其實C中的函數(shù),幾乎都可以直接在C+中使用,當然要包含對應(yīng)頭文件。這兩種語言與其說是兩種不如說是一種,雖有細節(jié)的差別,但是相同的實在太多,一般編程時通常也是混合編程。在處理文件上,它們也說不上誰更有優(yōu)勢。其實C+效率不會比
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 墻體加厚施工方案
- 基于《公司法》的債權(quán)人保護法律問題研究
- YS保險四級機構(gòu)核心崗位人員薪酬改革效果評價研究
- 代理售賣設(shè)備合同范例
- 2025版高中化學課時分層作業(yè)8影響化學平衡移動的因素新人教版選修4
- 供銷社租賃合同范例
- 個人抵押合同范例
- 業(yè)務(wù)員項目合作合同范例
- 不含稅銷售合同范例
- 交通工程合同范例版
- 六年級數(shù)學下冊 負數(shù)練習題(人教版)
- 2024-2030年中國康復醫(yī)院行業(yè)管理模式分析及發(fā)展規(guī)劃研究報告
- 斐訊PSG1218路由器的上網(wǎng)設(shè)置教程
- 八年級下冊《經(jīng)典常談》-2024年中考語文名著導讀專練
- 亡靈節(jié)課件教學課件
- 企業(yè)名稱預(yù)先核準通知書
- 內(nèi)容運營崗位招聘筆試題與參考答案(某大型央企)
- 體格檢查:腹部檢查(二)
- 【人教版】《勞動教育》二下 勞動項目二 洗澡 課件
- 1.3.1-二項式定理-公開課一等獎?wù)n件
- 垃圾清運突發(fā)事件應(yīng)急預(yù)案
評論
0/150
提交評論