c語言
專注于為中小企業(yè)提供成都做網(wǎng)站、網(wǎng)站制作服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)徐匯免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了上1000家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
C語言是目前世界上流行、使用非常廣泛的高級程序設(shè)計(jì)語言。
C語言對操作系統(tǒng)和系統(tǒng)使用程序以及需要對硬件進(jìn)行操作的場合,用C語言明顯優(yōu)于其它高級語言,許多大型應(yīng)用軟件都是用C語言編寫的。
C語言具有繪圖能力強(qiáng),可移植性,并具備很強(qiáng)的數(shù)據(jù)處理能力,因此適于編寫系統(tǒng)軟件,三維,二維圖形和動畫它是數(shù)值計(jì)算的高級語言。
常用的編譯軟件有Microsoft Visual C++,Borland C++,Watcom C++ ,Borland C++ ,Borland C++ Builder,Borland C++ 3.1 for DOS,Watcom C++ 11.0 for DOS,GNU DJGPP C++ ,Lccwin32 C Compiler 3.1,Microsoft C,High C,TurboC等等......
C語言的發(fā)展歷史
C語言的發(fā)展頗為有趣。它的原型ALGOL 60語言。(也成為A語言)
1963年,劍橋大學(xué)將ALGOL 60語言發(fā)展成為CPL(Combined Programming Language)語言。
1967年,劍橋大學(xué)的Matin Richards 對CPL語言進(jìn)行了簡化,于是產(chǎn)生了BCPL語言。
1970年,美國貝爾實(shí)驗(yàn)室的Ken Thompson將BCPL進(jìn)行了修改,并為它起了一個有趣的名字“B語言”。意思是將CPL語言煮干,提煉出它的精華。并且他用B語言寫了第一個UNIX操作系統(tǒng)。
而在1973年,B語言也給人“煮”了一下,美國貝爾實(shí)驗(yàn)室的D.M.RITCHIE在B語言的基礎(chǔ)上最終設(shè)計(jì)出了一種新的語言,他取了BCPL的第二個字母作為這種語言的名字,這就是C語言。
為了使UNIX操作系統(tǒng)推廣,1977年Dennis M.Ritchie 發(fā)表了不依賴于具體機(jī)器系統(tǒng)的C語言編譯文本《可移植的C語言編譯程序》。
1978年Brian W.Kernighian和Dennis M.Ritchie出版了名著《The C Programming Language》,從而使C語言成為目前世界上流行最廣泛的高級程序設(shè)計(jì)語言。
1988年,隨著微型計(jì)算機(jī)的日益普及, 出現(xiàn)了許多C語言版本。由于沒有統(tǒng)一的標(biāo)準(zhǔn),使得這些C語言之間出現(xiàn)了一些不一致的地方。為了改變這種情況,美國國家標(biāo)準(zhǔn)研究所(ANSI)為C語言制定了一套ANSI標(biāo)準(zhǔn), 成為現(xiàn)行的C語言標(biāo)準(zhǔn) 3.C語言的主要特點(diǎn) 。C語言發(fā)展迅速, 而且成為最受歡迎的語言之一, 主要因?yàn)樗哂袕?qiáng)大的功能。許多著名的系統(tǒng)軟件, 如DBASE Ⅲ PLUS、DBASE Ⅳ 都是由C 語言編寫的。用C語言加上一些匯編語言子程序, 就更能顯示C語言的優(yōu)勢了,象PC- DOS 、WORDSTAR等就是用這種方法編寫的。
C語言版本
目前最流行的C語言有以下幾種:
·Microsoft C 或稱 MS C
·Borland Turbo C 或稱 Turbo C
·ATT C
這些C語言版本不僅實(shí)現(xiàn)了ANSI C標(biāo)準(zhǔn),而且在此基礎(chǔ)上各自作了一些擴(kuò)充,使之更加方便、完美。
面向?qū)ο蟮某绦蛟O(shè)計(jì)語言
在C的基礎(chǔ)上,一九八三年又由貝爾實(shí)驗(yàn)室的Bjarne Strou-strup推出了C++。 C++進(jìn)一步擴(kuò)充和完善了C語言,成為一種面向 對象的程序設(shè)計(jì)語言。C++目前流行的最新版本是Borland C++4.5,Symantec C++6.1,和Microsoft VisualC++ 2.0。C++提出了一些更為深入的概念,它所支持的這些面向?qū)ο蟮母拍钊菀讓栴}空間直接地映射到程序空間,為程序員提供了一種與傳統(tǒng)結(jié)構(gòu)程序設(shè)計(jì)不同的思維方式和編程方法。因而也增加了整個語言的復(fù)雜性,掌握起來有一定難度。
C語言的特點(diǎn)
1. 簡潔緊湊、靈活方便
C語言一共只有32個關(guān)鍵字,9種控制語句,程序書寫自由,主要用小寫字母表示。它把高級語言的基本結(jié)構(gòu)和語句與低級語言的實(shí)用性結(jié)合起來。 C 語言可以象匯編語言一樣對位、字節(jié)和地址進(jìn)行操作, 而這三者是計(jì)算機(jī)最基本的工作單元。
2. 運(yùn)算符豐富
C的運(yùn)算符包含的范圍很廣泛,共有種34個運(yùn)算符。C語言把括號、賦值、強(qiáng)制類型轉(zhuǎn)換等都作為運(yùn)算符處理。從而使C的運(yùn)算類型極其豐富表達(dá)式類型多樣化,靈活使用各種運(yùn)算符可以實(shí)現(xiàn)在其它高級語言中難以實(shí)現(xiàn)的運(yùn)算。
3. 數(shù)據(jù)結(jié)構(gòu)豐富
C的數(shù)據(jù)類型有:整型、實(shí)型、字符型、數(shù)組類型、指針類型、結(jié)構(gòu)體類型、共用體類型等。能用來實(shí)現(xiàn)各種復(fù)雜的數(shù)據(jù)類型的運(yùn)算。并引入了指針概念,使程序效率更高。另外C語言具有強(qiáng)大的圖形功能, 支持多種顯示器和驅(qū)動器。且計(jì)算功能、邏輯判斷功能強(qiáng)大。
4. C是結(jié)構(gòu)式語言
結(jié)構(gòu)式語言的顯著特點(diǎn)是代碼及數(shù)據(jù)的分隔化,即程序的各個部分除了必要的信息交流外彼此獨(dú)立。這種結(jié)構(gòu)化方式可使程序?qū)哟吻逦? 便于使用、維護(hù)以及調(diào)試。C語言是以函數(shù)形式提供給用戶的,這些函數(shù)可方便的調(diào)用,并具有多種循環(huán)、條件語句控制程序流向,從而使程序完全結(jié)構(gòu)化。
5. C語法限制不太嚴(yán)格、程序設(shè)計(jì)自由度大
一般的高級語言語法檢查比較嚴(yán),能夠檢查出幾乎所有的語法錯誤。而C語言允許程序編寫者有較大的自由度。
6. C語言允許直接訪問物理地址,可以直接對硬件進(jìn)行操作
因此既具有高級語言的功能,又具有低級語言的許多功能,能夠象匯編語言一樣對位、字節(jié)和地址進(jìn)行操作,而這三者是計(jì)算機(jī)最基本的工作單元,可以用來寫系統(tǒng)軟件。
7. C語言程序生成代碼質(zhì)量高,程序執(zhí)行效率高
一般只比匯編程序生成的目標(biāo)代碼效率低10へ20%。
8. C語言適用范圍大,可移植性好
C語言有一個突出的優(yōu)點(diǎn)就是適合于多種操作系統(tǒng), 如DOS、UNIX,也適用于多種機(jī)型。
C源程序的結(jié)構(gòu)特點(diǎn)
1.一個C語言源程序可以由一個或多個源文件組成。
2.每個源文件可由一個或多個函數(shù)組成。
3.一個源程序不論由多少個文件組成,都有一個且只能有一個main函數(shù),即主函數(shù)。
4.源程序中可以有預(yù)處理命令(include 命令僅為其中的一種),預(yù)處理命令通常應(yīng)放在源文件或源程序的最前面。
5.每一個說明,每一個語句都必須以分號結(jié)尾。但預(yù)處理命令,函數(shù)頭和花括號“}”之后不能加分號。
6.標(biāo)識符,關(guān)鍵字之間必須至少加一個空格以示間隔。若已有明顯的間隔符,也可不再加空格來間隔。
書寫程序時應(yīng)遵循的規(guī)則
當(dāng)然,C語言也有自身的不足,比如:C語言的語法限制不太嚴(yán)格,對變量的類型約束不嚴(yán)格,影響程序的安全性,對數(shù)族下標(biāo)越界不作檢查等。從應(yīng)用的角度,C語言比其他高級語言較難掌握。
總之,C語言既有高級語言的特點(diǎn),又具有匯編語言的特點(diǎn);既是一個成功的系統(tǒng)設(shè)計(jì)語言,有時一個使用的程序設(shè)計(jì)語言;既能用來編寫不依賴計(jì)算機(jī)硬件的應(yīng)用程序,又能用來編寫各種系統(tǒng)程序;是一種受歡迎、應(yīng)用廣泛的程序設(shè)計(jì)語言。
C語言有很多的優(yōu)點(diǎn)
指針就是C語言的一大特色,可以說C語言優(yōu)于其它高級語言的一個重要原因就是因?yàn)樗兄羔槻僮骺梢灾苯舆M(jìn)行靠近硬件的操作,但是C的指針操作也給它帶來了很多不安全的因素.C++在這方面做了很好的改進(jìn),在保留了指針操作的同時又增強(qiáng)了安全性。Java又進(jìn)一步提高了安全性。
C語言的缺點(diǎn)
C語言的缺點(diǎn)主要是表現(xiàn)在數(shù)據(jù)的封裝性上,這一點(diǎn)使得C在數(shù)據(jù)的安全性上做的有很大缺陷,這也是C和C++的一大區(qū)別
C語言源程序文件名的后綴是.c。C源程序經(jīng)過C編譯程序編譯之后生成一個后綴為.OBJ的二進(jìn)制文件,
然后由稱為“連接程序”的軟件,把此.OBJ文件與C語言提供的各種庫函數(shù)連接起來生成一個后綴為.EXE的可執(zhí)行文件。
由高級語言編寫的程序稱為“源程序”,把由二進(jìn)制代碼表示的程序稱為“目標(biāo)程序”。為了把源程序轉(zhuǎn)換成機(jī)器能接受的目標(biāo)程序,這時我們需要具有翻譯功能的軟件--“編譯程序”。每種高級語言都有與它對應(yīng)的編譯程序。
擴(kuò)展資料
1、目標(biāo)文件的擴(kuò)展名為“.obj”(Windows)或“.o”(Linux)。目標(biāo)文件已經(jīng)是機(jī)器指令,但還不能運(yùn)行,因?yàn)槟繕?biāo)文件還沒有解決函數(shù)調(diào)用問題。
2、可執(zhí)行文件的擴(kuò)展名為“.exe“。
c語言源程序的擴(kuò)展名是:“.c”。由C語言構(gòu)成的指令序列稱為C源程序,源程序文件的后綴為“.c”。注:在絕大多數(shù)的操作系統(tǒng)里,C源代碼文件的后綴的大小寫無所謂,如“index.C”和“index.c”指的是同一個文件;但老練的程序員通常使用小寫。
對于計(jì)算機(jī)語言來說,其源代碼文件的命名會有一個特定的后綴。如C++的源代碼文件的后綴是“.cpp”;Python的源代碼文件的后綴是“.py”;而C的源代碼文件的后綴則是“.C”。
源程序的結(jié)構(gòu)特點(diǎn)
1、一個C語言源程序可以由一個或多個源文件組成。
2、每個源文件可由一個或多個函數(shù)組成。
3、一個源程序不論由多少個文件組成,都有一個且只能有一個main函數(shù),即主函數(shù)。
4、源程序中可以有預(yù)處理命令(include 命令僅為其中的一種),預(yù)處理命令通常應(yīng)放在源文件或源程序的最前面。
5、每一個說明,每一個語句都必須以分號結(jié)尾。但預(yù)處理命令,函數(shù)頭和花括號“}”之后不能加分號。
6、標(biāo)識符,關(guān)鍵字之間必須至少加一個空格以示間隔。若已有明顯的間隔符,也可不再加空格來間隔。
由于版權(quán)原因,庫函數(shù)的源代碼一般是不可見的,但在頭文件中你可以看到它對外的接口。
庫函數(shù)是人家寫的程序,你拿來用在你的程序里.
C語言歷史
早期的操作系統(tǒng)等系統(tǒng)軟件主要是用匯編語言編寫的,如UNIX操作系統(tǒng)。由于匯編語言
依賴于計(jì)算機(jī)硬件,程序的可讀性和可移植性都比較差。為了提高可讀性和可移植性,最好
改用高級語言,但一般高級語言難以實(shí)現(xiàn)匯編語言的某些功能,而匯編語言可以直接對硬件
進(jìn)行操作,例如,對內(nèi)存地址的操作、位(bit)操作等。人們設(shè)想能否找到一種既具有一般
高級語言特性,又具有低級語言特性的語言,集它們的優(yōu)點(diǎn)于一身。于是,C語言就在這種
情況下應(yīng)運(yùn)而生了,之后成為國際上廣泛流行的計(jì)算機(jī)高級語言。它適合于作為系統(tǒng)描述語
言,即用來寫系統(tǒng)軟件,也可用來寫應(yīng)用軟件。
C語言是在B語言的基礎(chǔ)上發(fā)展起來的,它的根源可以追溯到ALGOL 60。1960年出現(xiàn)的
ALGOL 60是一種面向問題的高級語言,它離硬件比較遠(yuǎn),不宜用來編寫系統(tǒng)程序,1963年英
國的劍橋大學(xué)推出了CPL(Combined Programming Language)語言。CPL語言在ALGOL 60的基
礎(chǔ)上接近硬件一些,但規(guī)模比較大,難以實(shí)現(xiàn)。1967年英國劍橋大學(xué)的Matin Richards對
CPL語言作了簡化,推出了BCPL(Basic Combined Programming Language)語言。1970年美國
貝爾實(shí)驗(yàn)室的Ken Thompson以BCPL語言為基礎(chǔ),又作了進(jìn)一步簡化,它使得BCPL能擠壓在
8K內(nèi)存中運(yùn)行,這個很簡單的而且很接近硬件的語言就是B語言(取BCPL的第一個字母),并
用它寫了第一個UNIX操作系統(tǒng),在DEC PDP-7上實(shí)現(xiàn)。1971年在PDP-11/20上實(shí)現(xiàn)了B語言,
并寫了UNIX操作系統(tǒng)。但B語言過于簡單,功能有限,并且和BCPL都是“無類型”的語言。
1972年至1973年間,貝爾實(shí)驗(yàn)室的D.M.Ritchie在B語言的基礎(chǔ)上設(shè)計(jì)出了C語言(取BCPL的
第二個字母)。C語言既保持了BCPL和B語言的優(yōu)點(diǎn)(精練,接近硬件),又克服了它們的缺點(diǎn)
(過于簡單,數(shù)據(jù)無類型等)。最初的C語言只是為描述和實(shí)現(xiàn)UNIX操作系統(tǒng)提供一種工具語
言而設(shè)計(jì)的。1973年,K.Thompson和D.M.Ritchie兩人合作把UNIX的90%以上用C改寫,
即UNIX第5版。原來的UNIX操作系統(tǒng)是1969年由美國的貝爾實(shí)驗(yàn)室的K.Thompson和
D.M.Ritchie開發(fā)成功的,是用匯編語言寫的,這樣,Unix使分散的計(jì)算系統(tǒng)之間的大規(guī)
模聯(lián)網(wǎng)以及互聯(lián)網(wǎng)成為可能。
后來,C語言多次作了改進(jìn),但主要還是在貝爾實(shí)驗(yàn)室內(nèi)部使用。直到1975年UNIX第6版
公布后,C語言的突出優(yōu)點(diǎn)才引起人們普遍注意。1977年出現(xiàn)了不依賴于具體機(jī)器的C語言編
譯文本《可移植C語言編譯程序》,使C移植到其它機(jī)器時所需做的工作大大簡化了,這也推
動了UNIX操作系統(tǒng)迅速地在各種機(jī)器上實(shí)現(xiàn)。例如,VAX,ATT等計(jì)算機(jī)系統(tǒng)都相繼開發(fā)了
UNIX。隨著UNIX的日益廣泛使用,C語言也迅速得到推廣。C語言和UNIX可以說是一對孿生兄
弟,在發(fā)展過程中相輔相成。1978年以后,C語言已先后移植到大、中、小、微型機(jī)上,如
IBM System/370、Honeywell 6000和Interdata 8/32,已獨(dú)立于UNIX和PDP了?,F(xiàn)在C語言已
風(fēng)靡全世界,成為世界上應(yīng)用最廣泛的幾種計(jì)算機(jī)語言之一。
以1978年由美國電話電報公司(ATT)貝爾實(shí)驗(yàn)室正式發(fā)表的UNIX第7版中的C編譯程序?yàn)?/p>
基礎(chǔ),Brian W.Kernighan(柯尼漢)和Dennis M.Ritchie(里奇)合著了影響深遠(yuǎn)的名著
《The C Programming Language》,常常稱它為‘KR’,也有人稱之為‘KR標(biāo)準(zhǔn)’或‘白
皮書’(white book),它成為后來廣泛使用的C語言版本的基礎(chǔ),但在‘KR’中并沒有定義
一個完整的標(biāo)準(zhǔn)C語言。為此,1983年,美國國家標(biāo)準(zhǔn)化協(xié)會(ANSl)X3J11 委員會根據(jù)C語言
問世以來各種版本對C的發(fā)展和擴(kuò)充,制定了新的標(biāo)準(zhǔn),稱為ANSI C,ANSI C比原來的標(biāo)準(zhǔn)C
有了很大的發(fā)展:KR在1988年修改了他們的經(jīng)典著作《The C Programming Language》,
按照ANSI C標(biāo)準(zhǔn)重新寫了該書。1987年,ANSI又公布了新標(biāo)準(zhǔn)——87 ANSI C。目前流行的C
編譯系統(tǒng)都是以它為基礎(chǔ)的。當(dāng)時廣泛流行的各種版本C語言編譯系統(tǒng)雖然基本部分是相同
的,但也有一些不同。在微型機(jī)上使用的有Microsoft C(MS C),Borland Turbo C,Quick C
和ATT C等,它們的不同版本又略有差異。到后來的Java、C++、C#都是以C語言為基礎(chǔ)發(fā)展
起來的。
C語言的特點(diǎn)
1. 簡潔緊湊、靈活方便
C語言一共只有32個關(guān)鍵字,9種控制語句,程序書寫自由,主要用小寫字母表示。它把高級語言的基本結(jié)構(gòu)和語句與低級語言的實(shí)用性結(jié)合起來。 C 語言可以象匯編語言一樣對位、字節(jié)和地址進(jìn)行操作, 而這三者是計(jì)算機(jī)最基本的工作單元。
2. 運(yùn)算符豐富
C的運(yùn)算符包含的范圍很廣泛,共有種34個運(yùn)算符。C語言把括號、賦值、強(qiáng)制類型轉(zhuǎn)換等都作為運(yùn)算符處理。從而使C的運(yùn)算類型極其豐富表達(dá)式類型多樣化,靈活使用各種運(yùn)算符可以實(shí)現(xiàn)在其它高級語言中難以實(shí)現(xiàn)的運(yùn)算。
3. 數(shù)據(jù)結(jié)構(gòu)豐富
C的數(shù)據(jù)類型有:整型、實(shí)型、字符型、數(shù)組類型、指針類型、結(jié)構(gòu)體類型、共用體類型等。能用來實(shí)現(xiàn)各種復(fù)雜的數(shù)據(jù)類型的運(yùn)算。并引入了指針概念,使程序效率更高。另外C語言具有強(qiáng)大的圖形功能, 支持多種顯示器和驅(qū)動器。且計(jì)算功能、邏輯判斷功能強(qiáng)大。
4. C是結(jié)構(gòu)式語言
結(jié)構(gòu)式語言的顯著特點(diǎn)是代碼及數(shù)據(jù)的分隔化,即程序的各個部分除了必要的信息交流外彼此獨(dú)立。這種結(jié)構(gòu)化方式可使程序?qū)哟吻逦? 便于使用、維護(hù)以及調(diào)試。C語言是以函數(shù)形式提供給用戶的,這些函數(shù)可方便的調(diào)用,并具有多種循環(huán)、條件語句控制程序流向,從而使程序完全結(jié)構(gòu)化。
5. C語法限制不太嚴(yán)格、程序設(shè)計(jì)自由度大
一般的高級語言語法檢查比較嚴(yán),能夠檢查出幾乎所有的語法錯誤。而C語言允許程序編寫者有較大的自由度。
6. C語言允許直接訪問物理地址,可以直接對硬件進(jìn)行操作
因此既具有高級語言的功能,又具有低級語言的許多功能,能夠象匯編語言一樣對位、字節(jié)和地址進(jìn)行操作,而這三者是計(jì)算機(jī)最基本的工作單元,可以用來寫系統(tǒng)軟件。
7. C語言程序生成代碼質(zhì)量高,程序執(zhí)行效率高
一般只比匯編程序生成的目標(biāo)代碼效率低10へ20%。
8. C語言適用范圍大,可移植性好
C語言有一個突出的優(yōu)點(diǎn)就是適合于多種操作系統(tǒng), 如DOS、UNIX,也適用于多種機(jī)型。
C源程序的結(jié)構(gòu)特點(diǎn)
1.一個C語言源程序可以由一個或多個源文件組成。
2.每個源文件可由一個或多個函數(shù)組成。
3.一個源程序不論由多少個文件組成,都有一個且只能有一個main函數(shù),即主函數(shù)。
4.源程序中可以有預(yù)處理命令(include 命令僅為其中的一種),預(yù)處理命令通常應(yīng)放在源文件或源程序的最前面。
5.每一個說明,每一個語句都必須以分號結(jié)尾。但預(yù)處理命令,函數(shù)頭和花括號“}”之后不能加分號。
6.標(biāo)識符,關(guān)鍵字之間必須至少加一個空格以示間隔。若已有明顯的間隔符,也可不再加空格來間隔。
書寫程序時應(yīng)遵循的規(guī)則
當(dāng)然,C語言也有自身的不足,比如:C語言的語法限制不太嚴(yán)格,對變量的類型約束不嚴(yán)格,影響程序的安全性,對數(shù)族下標(biāo)越界不作檢查等。從應(yīng)用的角度,C語言比其他高級語言較難掌握。
總之,C語言既有高級語言的特點(diǎn),又具有匯編語言的特點(diǎn);既是一個成功的系統(tǒng)設(shè)計(jì)語言,有時一個使用的程序設(shè)計(jì)語言;既能用來編寫不依賴計(jì)算機(jī)硬件的應(yīng)用程序,又能用來編寫各種系統(tǒng)程序;是一種受歡迎、應(yīng)用廣泛的程序設(shè)計(jì)語言。
C語言有很多的優(yōu)點(diǎn)
指針就是C語言的一大特色,可以說C語言優(yōu)于其它高級語言的一個重要原因就是因?yàn)樗兄羔槻僮骺梢灾苯舆M(jìn)行靠近硬件的操作,但是C的指針操作也給它帶來了很多不安全的因素.C++在這方面做了很好的改進(jìn),在保留了指針操作的同時又增強(qiáng)了安全性。Java又進(jìn)一步提高了安全性。
C語言的缺點(diǎn)
C語言的缺點(diǎn)主要是表現(xiàn)在數(shù)據(jù)的封裝性上,這一點(diǎn)使得C在數(shù)據(jù)的安全性上做的有很大缺陷,這也是C和C++的一大區(qū)別