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