C語言
C語言是一種古老而又經(jīng)久不衰的計(jì)算機(jī)程序設(shè)計(jì)語言,大約誕生于上個(gè)世紀(jì)60年代。由于它的設(shè)計(jì)有很多優(yōu)點(diǎn),多年以來深受廣大程序設(shè)計(jì)人員的喜愛,并逐漸 淘汰了很多其它程序設(shè)計(jì)語言。我們平時(shí)使用的大多數(shù)軟件都是用C語言開發(fā)的。
很多后來出現(xiàn)的一些語言也沿用了很多它的東西。C語言的編程方式是一種稱為面 向過程的開發(fā)方式。也就是說,解決問題的時(shí)候,程序員需要思考計(jì)算機(jī)應(yīng)該如何一步一步完成這個(gè)問題,然后將相應(yīng)過程轉(zhuǎn)化為代碼。
當(dāng)軟件變得越來越復(fù)雜,代碼越來越長(zhǎng)的時(shí)候,一個(gè)人的腦力有限,用面向過程的方法很難開發(fā),往往寫著后面的,就忘了前面寫 了什么了。而且復(fù)雜軟件往往需要很多人協(xié)同開發(fā),更加大了開發(fā)難度。一種稱為面向?qū)ο蟮能浖_發(fā)方法應(yīng)運(yùn)而生。面向?qū)ο蟮乃枷胗脦拙湓捄茈y說清楚。
C++的出現(xiàn)
C++這個(gè)詞在中國(guó)大陸的程序員圈子中通常被讀做“C加加”,而西方的程序
員通常讀做“C plus plus”,“CPP”。 它是一種使用非常廣泛的計(jì)算機(jī)編程語言。C++是一種靜態(tài)數(shù)據(jù)類型檢查的、支持多重編程范式的通用程序設(shè)計(jì)語言。它支持過程化程序設(shè)計(jì)、數(shù)據(jù)抽象、面向?qū)ο蟪绦蛟O(shè)計(jì)、泛型程序設(shè)計(jì)等多種程序設(shè)計(jì)風(fēng)格。
國(guó)內(nèi)的計(jì)算機(jī)教材在講到這里的時(shí)候往往也都說不清楚什么叫面向?qū)ο蟆_@個(gè)詞語也許只能意會(huì)不能言傳吧。需要開發(fā)過一些相關(guān)軟件才能領(lǐng)會(huì)。這里還是不具體說了吧。 C語言不是面向?qū)ο蟮?,而程序員又離不開C語言,因此有人在C語言的基礎(chǔ)上添加了面向?qū)ο蟮墓δ?,就是C++.同時(shí),C++修改了C語言中一些不方便的規(guī) 定,使C語言用起來更方便了。
這里需要注意兩點(diǎn)
1.譚浩強(qiáng)那本著名的《《c程序設(shè)計(jì)》》后面用了幾張篇幅簡(jiǎn)要介紹了C++,但是他講的C++只是上面提到的修改C語言不方便的規(guī)定,涉及到面向?qū)ο蟮膬?nèi)容一點(diǎn)沒有。
C和C++的編程思想不一樣
2.C++是在C語言的基礎(chǔ)上發(fā)展來的,但是并不是C++比C語言高級(jí),兩者的編程思想不一樣,應(yīng)用的領(lǐng)域也不一樣。在各自的領(lǐng)域,誰也不能替代誰。
C語言與C++的區(qū)別有很多:
C與C++的最大區(qū)別:在于它們的用于解決問題的思想方法不一樣。之所以說C++比C更先進(jìn),是因?yàn)椤?設(shè)計(jì)這個(gè)概念已經(jīng)被融入到C++之中 ”,而就語言本身而言,在C中更多的是算法的概念。那么是不是C就不重要了,錯(cuò)!算法是程序設(shè)計(jì)的基礎(chǔ),好的設(shè)計(jì)如果沒有好的算法,一樣不行。而且,“C加上好的設(shè)計(jì)”也能寫出非常好的東西。
1,全新的程序程序思維,C語言是面向過程的,而C++是面向?qū)ο蟮摹?/p>
2,C語言有標(biāo)準(zhǔn)的函數(shù)庫(kù),它們松散的,只是把功能相同的函數(shù)放在一個(gè)頭文件中;而C++對(duì)于大多數(shù)的函數(shù)都是有集成的很緊密,特別是C語言中沒有的C++中的API是對(duì)Window系統(tǒng)的大多數(shù)API有機(jī)的組合,是一個(gè)集體。但你也可能單獨(dú)調(diào)用API。
3,特別是C++中的圖形處理,它和語言的圖形有很大的區(qū)別。C語言中的圖形處理函數(shù)基本上是不能用在中C++中的。C語言標(biāo)準(zhǔn)中不包括圖形處理。
4,C和C++中都有結(jié)構(gòu)的概念,但是在C語言中結(jié)構(gòu)只有成員變量,而沒成員方法,而在C++中結(jié)構(gòu)中,它可以有自己的成員變量和成員函數(shù)。但是在C語言中結(jié)構(gòu)的成員是公共的,什么想訪問它的都可以訪問;而在VC++中它沒有加限定符的為私有的。
5,C語言可以寫很多方面的程序,但是C++可以寫得更多更好,C++可以寫基于DOSr程序,寫DLL,寫控件,寫系統(tǒng)。
6,C語言對(duì)程序的文件的組織是松散的,幾乎是全要程序處理;而c++對(duì)文件的組織是以工程,各文件分類明確。
7,C++中的IDE很智能,和VB一樣,有的功能可能比VB還強(qiáng)。
8,C++對(duì)可以自動(dòng)生成你想要的程序結(jié)構(gòu)使你可以省了很多時(shí)間。有很多可用的工具如加入MFC中的類的時(shí)候,加入變量的時(shí)候等等。
9,C++中的附加工具也有很多,可以進(jìn)行系統(tǒng)的分析,可以查看API;可以查看控件。
10,調(diào)試功能強(qiáng)大,并且方法多樣*C語言是面向過程的,而C++是面向?qū)ο蟮?
幾點(diǎn)學(xué)習(xí)建議:
1.基本概念很重要。無論學(xué)C,還是學(xué)C++,基本概念都是第一位的,也是比較困難的,但只有把握了基本概念才能把握整體脈絡(luò),才能居高臨下。
2.C是C++的子集,它的基本概念和設(shè)計(jì)方法相對(duì)比較容易理解,初學(xué)者可從它入手。
3.如果要學(xué)好C++,建議初學(xué)者最好別在如VC,BCB平臺(tái)下寫程序,那種自動(dòng)化的代碼生成,花花綠綠的界面,會(huì)讓你手足無措。最好先找一片空地(unix,dos),從頭做起,寫幾個(gè)大點(diǎn)的程序,數(shù)個(gè)回合,再到VC,BCB下看看,你會(huì)輕松得很。在我看來,學(xué)好C/C++是成為VC,BCB高手的必由之路。
4.不要妄想速成,必須得一個(gè)byte,一個(gè)bit的去摳,盡量搞清楚每一個(gè)問題
電子發(fā)燒友App















評(píng)論