初學者想學C或C++的請先來看看

字號:

考試大編輯推薦:計算機二級C語言輔導知識
    這是一個爭論不休的話題,不同人總會有不同的見解。傳統(tǒng)的說法是從Pascal開始,而較為新點的是C開始,這幾年以來,也有提出直接從C++或者C#/Java開始學起。
    首先,我先來介紹一下各種編程語言的來源、特點。
    Pascal語言:
    Pascal是一種計算機通用的高級程序設計語言,由瑞士Niklaus Wirth教授六十年代末設計并創(chuàng)立的。
    Pascal的主要特點有:嚴格的結構化形式、豐富完備的數(shù)據類型、運行效率高、查錯能力強等特點。
    由于上述特點,Pascal可以方便用于描述各種算法和數(shù)據結構。對于程序設計的初學者,Pascal語言有益于培養(yǎng)良好的程序設計風格和習慣。IOI(國際奧林匹克信息學競賽)把Pascal語言作為三種程序設計語言之一。NOI(全國奧林匹克信息學競賽)把Pascal語言定為提倡的程序設計語言,在大學中Pascal語言也常常被用作學習數(shù)據結構與算法的數(shù)學語言。
    C語言:
    C語言是介于匯編語言和高級語言之間的語言,屬于高級語言,也稱為中級語言,是集匯編和高級語言優(yōu)點于一身的程序設計語言。于1972年在美國貝爾實驗室里問世。早期的C語言主要用于UNIX系統(tǒng)。由于C語言的強大功能和各方面的優(yōu)點逐漸為人們認識,到了九十年代,C語言開始進入其他操作系統(tǒng),并很快在各類大、中、小和微型計算機上得到廣泛的應用。成為當代優(yōu)秀的程序設計語言之一。
    C的特點
    1. 是一種結構化語言。層次清晰,便于按模塊化方式組織程序,易于調試和維護。
    2. C語言的表現(xiàn)能力和處理能力極強。不僅具有豐富的運算符和數(shù)據類型,便于實現(xiàn)各類復雜的數(shù)據結構,它還可以直接訪問內存的物理地址,進行位級別的操作。
    3. 由于C語言實現(xiàn)對硬件的編程操作,所以既可用于系統(tǒng)軟件的開發(fā),也適合于應用軟件的開發(fā)。C語言還具有效率高,可移植性強等特點。因此廣泛地移植到了各類計算機上,從而形成了多種版本的C語言。
    4. 由于C語言允許直接對位、字節(jié)和地址進行操作,能實現(xiàn)匯編語言的大部分功能。
    5. 目標代碼質量高,程序執(zhí)行效率高。
    總體上來說,C語言的優(yōu)點是簡潔、緊湊、使用方便、靈活、易于學習和應用。僅有32個關鍵字。9種控制語句,程序的書寫形式也很自由。
    C語言的弱點:非強類型;語法限制不嚴格,使得編程者無法過多地依賴C編譯程序去查錯;缺少實時檢查,如數(shù)組越界等。
    從嚴格上來說,C語言是塊結構語言,這是因為它在結構上類似于ALGOL、Pascal和Modula-2.從技術上講,塊結構語言允許在過程和函數(shù)中定義過程和函數(shù)。因為C語言不允許在函數(shù)中定義函數(shù),所以不能稱為通常意義上的塊結構語言。
    C語言作為一門面向過程的計算機語言,至今已有三十多年歷史,應用廣泛,無論是Windows還是Linux,你所看到的底層都是用C寫的。大部分的網絡協(xié)議也都是用C實現(xiàn)的。你看到的漂亮的游戲畫面也是用C實現(xiàn)的,工業(yè)控制程序也是用C實現(xiàn)的。不過C不是萬能,只是某些方面它適用而已。
    C++語言
    C++是于1986年由AT&T貝爾實驗室開發(fā)的,語言開發(fā)的目的在于通過數(shù)據封裝減少程序變量的副作用,從而降低程序的復雜性并提高程序的可靠性。(筆者曾經聽到的開發(fā)C++的目的是由于懂得C語言的人越來越多,所以需要再出一門更難的、比C語言強大的語言,才能保住飯碗,so.C++出世啦)C++是C語言的直接擴展,C++的多繼承機制能更好地描述對象的屬性和行為。
    C++是C的擴展,但C++可以作為一種全新的語言來看。
    C++的特點:面向對象、繼承、封裝、多態(tài)性。
    由于C++是C的擴展,所以也具有C的特點。
    C++在C的基礎上,加入了面向對象編程思想,也就決定了C++的效率在某一方面是不如C的。比如定義一種類型,C++用類(Class)來封裝,而C可能就直接幾個變量的組合就成了一個結構體(Struct),類不僅具有成員變量,還具有成員函數(shù)等,在精細的比較其效率時,C會比C++的效率要高。但由于時代的發(fā)展,項目或工程的龐大化,基于面向對象的思想顯然更能適應。即C++在這方面能比C要做得更漂亮?,F(xiàn)在不少系統(tǒng)級編程都是用C++實現(xiàn),許多應用級別的軟件也是用C++實現(xiàn)。
    這里要注意一點,就是C++并不是完全的面向對象語言。它是提供了面向對象的模型以及思路,但是同時兼容了面向過程的模型。