更新時(shí)間:2018年11月14日13時(shí)20分 來源:傳智播客 瀏覽次數(shù):
C語言是面向過程的,而C++是面向?qū)ο蟮?C和C++的區(qū)別:
C是一個(gè)結(jié)構(gòu)化語言,它的重點(diǎn)在于算法和數(shù)據(jù)結(jié)構(gòu)。C程序的設(shè)計(jì)首要考慮的是如何通過一個(gè)過程,對(duì)輸入(或環(huán)境條件)進(jìn)行運(yùn)算處理得到輸出(或?qū)崿F(xiàn)過程(事務(wù))控制)。
C++,首要考慮的是如何構(gòu)造一個(gè)對(duì)象模型,讓這個(gè)模型能夠契合與之對(duì)應(yīng)的問題域,這樣就可以通過獲取對(duì)象的狀態(tài)信息得到輸出或?qū)崿F(xiàn)過程(事務(wù))控制。 所以C與C++的最大區(qū)別在于它們的用于解決問題的思想方法不一樣。之所以說C++比C更先進(jìn),是因?yàn)?ldquo; 設(shè)計(jì)這個(gè)概念已經(jīng)被融入到C++之中 ”。 C與C++的最大區(qū)別:在于它們的用于解決問題的思想方法不一樣。之所以說C++比C更先進(jìn),是因?yàn)?ldquo; 設(shè)計(jì)這個(gè)概念已經(jīng)被融入到C++之中 ”,而就語言本身而言,在C中更多的是算法的概念。那么是不是C就不重要了,錯(cuò)!算法是程序設(shè)計(jì)的基礎(chǔ),好的設(shè)計(jì)如果沒有好的算法,一樣不行。而且,“C加上好的設(shè)計(jì)”也能寫出非常好的東西。
工作中,接觸過很多想到學(xué)習(xí)c語言而又沒有一點(diǎn)計(jì)算機(jī)基礎(chǔ)的人。經(jīng)常有人問”我沒有一點(diǎn)基礎(chǔ),該怎么入門c語言啊”??催^很多初學(xué)者久久摸不到門路,每到這個(gè)時(shí)候,腦海中總會(huì)浮現(xiàn)一個(gè)問題:學(xué)習(xí)c語言真的就那么難嗎? 不難。
很 多人學(xué)習(xí)c語言,上來就去背語法,甚至連各種高深的算法都是死背出來的,大學(xué)里流行考計(jì)算機(jī)二級(jí)C語言證書,手抄資料的有之,背全書者有之,終于可憐又可悲的拿到了所謂的證書,真正用c語言編寫程序處理問題時(shí),滿腦子空了??赡苓@樣學(xué)過之后,把許多c語言語法記住了,但是卻學(xué)不會(huì)如何編寫程序處理問題。所 以,掌握學(xué)習(xí)方法很重要。如果你覺得很難,那是因?yàn)槟闳鄙僖粋€(gè)好的方法。
學(xué)習(xí)c語言也離不開記憶語法,但是死記的話,肯定不行。c語言,無 非也就是一種工具,用它來表達(dá)我們的思路,讓計(jì)算機(jī)幫我們思考,寫程序的過程就變成了告訴計(jì)算機(jī)該怎么做的過程。很多人遇到問題,自己都沒有思路,更別提用c語言寫程序了。很遇到問題的時(shí)候不要滿腦子去想怎么用c語言處理這個(gè)問題,記?。撼绦?= 數(shù)據(jù)結(jié)構(gòu) + 算法,把思路轉(zhuǎn)變到對(duì)數(shù)據(jù)的組織和對(duì)算法的思考上 來。
數(shù)據(jù)結(jié)構(gòu)歸根結(jié)底就是一些數(shù)據(jù)的組織形式,而數(shù)據(jù)在c語言里都有各自的類型,各種復(fù)雜的數(shù)據(jù)結(jié)構(gòu)也都是從最基本數(shù)據(jù)類型組織起來的,所以學(xué)習(xí) c語言,首先要記住c語言里可用的數(shù)據(jù)類型都有哪些,掌握每種數(shù)據(jù)類型的定義和使用規(guī)則。任何一種計(jì)算機(jī)編程語言,最根本都是對(duì)數(shù)據(jù)的操作。每種語言都有不完全相同的數(shù)據(jù)組成形式,很多時(shí)候,對(duì)于同樣一個(gè)問題,你可以構(gòu)建不同的數(shù)據(jù)結(jié)構(gòu)對(duì)它進(jìn)行處理。初學(xué)者,不必太深究要把數(shù)據(jù)做成什么類型可以寫出漂亮的程序。你只需要記住:你需要什么樣的數(shù)據(jù)。
學(xué)習(xí)c語言,其次要學(xué)習(xí)算法。算法的好壞直接影響了程序的好壞。有人建議學(xué)程序的時(shí)候多看別人的例子程 序,研究別人是如何處理問題的。不錯(cuò),這是必不可少的,但是不要總是去看,也要自己多思考。這里的思考不是讓你思考如何處理這個(gè)問題,你要思考的是如何教 會(huì)計(jì)算機(jī)幫你解決這個(gè)問題。我們寫出來的程序畢竟是讓計(jì)算機(jī)來運(yùn)行的。你必須按照計(jì)算機(jī)的特點(diǎn)來思考才可以。
計(jì)算機(jī)在處理問題時(shí)有自己的特點(diǎn):
1、 計(jì)算機(jī)在問題的處理方式上要求全,將所有的可能都要告訴它。人可以根據(jù)習(xí)慣忽略一些東西,但計(jì)算機(jī)不行。計(jì)算機(jī)沒有像人一樣的智能處理能力,它是人忠實(shí)的信徒,不管你怎么想,它都會(huì)執(zhí)行你的命令。由于你的習(xí)慣,導(dǎo)致一些別有用心的人或者無意犯錯(cuò)的人來犯錯(cuò)誤,致使計(jì)算機(jī)有時(shí)無所適從。很疲憊,甚至崩潰,報(bào)錯(cuò),造成你的程序是不成功的,所以你感覺很難。
2、 計(jì)算機(jī)要求程序的描述精確,無二義性。人的語言有很強(qiáng)的隨機(jī)性和二義性。我們平時(shí)說話時(shí),有時(shí)是一些招呼,有時(shí)說話的邏輯性可以不太清楚,話既可以表達(dá)這樣的意思,也可以表達(dá)那樣的意思,人可以根據(jù)環(huán)境和對(duì)方想表達(dá)的含義進(jìn)行分析,最終得到正確的結(jié)果,但是計(jì)算機(jī)很弱智,雖然它很聽話,但是他不能理解你表達(dá)的思想,只會(huì)按你交給的指令執(zhí)行,這樣導(dǎo)致執(zhí)行時(shí)報(bào)警和出錯(cuò)。
3、 計(jì)算機(jī)編程是 要求有很強(qiáng)的全局性和邏輯性,不存在起伏的問題。人的思維有很強(qiáng)的活躍期和蟄伏期,計(jì)算機(jī)不會(huì),它隨時(shí)待命。人在考慮問題時(shí),有很多盡興的東西,但這不是處理問題的整體,而是一部分,所以就出現(xiàn)做完一段代碼后,就不愿意再寫,或感覺很吃力,所以感覺很難。
所以我們?cè)谒伎紗栴}時(shí),要記住計(jì)算機(jī)的特點(diǎn),從計(jì)算機(jī)的角度去考慮問題。當(dāng)然作為初學(xué)者,習(xí)慣了以人來思考問題,轉(zhuǎn)變思想需要一個(gè)過程,我們可以先按照人的邏輯解決好問題,然后作類比,假如你自己是計(jì)算機(jī)你該怎么處理問題。當(dāng)你學(xué)會(huì)了從計(jì)算機(jī)的角度思考問題,并能夠正確地用c語言的語法表述出來你的思路(算法)時(shí),你就真正的入門c語言了。
現(xiàn)如今傳智播客的C語言培訓(xùn)基礎(chǔ)班又開課了,點(diǎn)擊鏈接http://m.8y3kgpwe.cn/subject/czly/index.shtml 即可參與。
推薦閱讀:
·c語言編程學(xué)習(xí)入門指南
·c語言從入門到精通需要看那些書籍
北京校區(qū)