c語(yǔ)言入門(mén)教程
導(dǎo)讀:隨著微型計(jì)算機(jī)的日益普及,C語(yǔ)言成為世界上最流行、使用最廣泛的高級(jí)程序設(shè)計(jì)語(yǔ)言之一。下面我們就一起來(lái)了解一下C語(yǔ)言的世界是什么樣子的吧。
1.c語(yǔ)言入門(mén)教程--簡(jiǎn)介
C語(yǔ)言是一種計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言,它既具有高級(jí)語(yǔ)言的特點(diǎn),又具有匯編語(yǔ)言的特點(diǎn)。它由美國(guó)貝爾研究所的D.M.Ritchie于1972年推出,它可以作為工作系統(tǒng)設(shè)計(jì)語(yǔ)言,編寫(xiě)系統(tǒng)應(yīng)用程序。它的應(yīng)用范圍廣泛,具備很強(qiáng)的數(shù)據(jù)處理能力,不僅僅是在軟件開(kāi)發(fā)上,而且各類(lèi)科研都需要用到C語(yǔ)言,適于編寫(xiě)系統(tǒng)軟件,三維,二維圖形和動(dòng)畫(huà),具體應(yīng)用比如單片機(jī)以及嵌入式系統(tǒng)開(kāi)發(fā)。
2.c語(yǔ)言入門(mén)教程--發(fā)展
C語(yǔ)言之所以命名為C,是因?yàn)?C語(yǔ)言源自Ken Thompson發(fā)明的B語(yǔ)言,而 B語(yǔ)言則源自BCPL語(yǔ)言。
1967年,劍橋大學(xué)的Martin Richards對(duì)CPL語(yǔ)言進(jìn)行了簡(jiǎn)化,于是產(chǎn)生了BCPL(Basic Combined Programming Language)語(yǔ)言。
1970年,美國(guó)貝爾實(shí)驗(yàn)室的 Ken Thompson,以BCPL語(yǔ)言為基礎(chǔ),設(shè)計(jì)出很簡(jiǎn)單且很接近硬件的B語(yǔ)言(取BCPL的首字母)。并且他用B語(yǔ)言寫(xiě)了第一個(gè)UNIX操作系統(tǒng)。
1972年,美國(guó)貝爾實(shí)驗(yàn)室的 D.M.Ritchie 在B語(yǔ)言的基礎(chǔ)上最終設(shè)計(jì)出了一種新的語(yǔ)言,他取了BCPL的第二個(gè)字母作為這種語(yǔ)言的名字,這就是C語(yǔ)言。
1977年,Dennis M.Ritchie發(fā)表了不依賴(lài)于具體機(jī)器系統(tǒng)的C語(yǔ)言編譯文本《可移植的C語(yǔ)言編譯程序》。
1978年由美國(guó)電話電報(bào)公司(AT&T)貝爾實(shí)驗(yàn)室正式發(fā)表了C語(yǔ)言。Brian Kernighan 和 Dennis Ritchie 出版了一本書(shū),名叫《The C Programming Language》。這本書(shū)被 C語(yǔ)言開(kāi)發(fā)者們稱(chēng)為"K&R",很多年來(lái)被當(dāng)作 C語(yǔ)言的非正式的標(biāo)準(zhǔn)說(shuō)明。人們稱(chēng)這個(gè)版本的 C語(yǔ)言為"K&R C"。
c語(yǔ)言宣傳圖1970到80年代,C語(yǔ)言被廣泛應(yīng)用,從大型主機(jī)到小型微機(jī),也衍生了C語(yǔ)言的很多不同版本。
1983年美國(guó)國(guó)家標(biāo)準(zhǔn)局 (American National Standards Institute,簡(jiǎn)稱(chēng)ANSI)成立了一個(gè)委員會(huì),來(lái)制定 C語(yǔ)言標(biāo)準(zhǔn)。
1989年 C語(yǔ)言標(biāo)準(zhǔn)被批準(zhǔn),被稱(chēng)為 ANSI X3.159-1989 "Programming Language C"。這個(gè)版本的C語(yǔ)言標(biāo)準(zhǔn)通常被稱(chēng)為ANSI C。
1990年,國(guó)際標(biāo)準(zhǔn)化組織ISO(International Organization for Standards)接受了89 ANSI C 為I SO C 的標(biāo)準(zhǔn)(ISO9899-1990)。1994年,ISO修訂了C語(yǔ)言的標(biāo)準(zhǔn)。
1999年,ISO又對(duì)C語(yǔ)言標(biāo)準(zhǔn)進(jìn)行修訂,在基本保留原來(lái)C語(yǔ)言特征的基礎(chǔ)上,針對(duì)應(yīng)該的需要,增加了一些功能,命名為ISO/IEC9899:1999。
在ANSI標(biāo)準(zhǔn)化后,C語(yǔ)言的標(biāo)準(zhǔn)在一段相當(dāng)?shù)臅r(shí)間內(nèi)都保持不變,盡管C繼續(xù)在改進(jìn)。它被ANSI于2000年3月采用。
2001年和2004年先后進(jìn)行了兩次技術(shù)修正。2011年12月8日,ISO正式公布C語(yǔ)言新的國(guó)際標(biāo)準(zhǔn)草案:ISO/IEC 9899:2011,即C11。
3.c語(yǔ)言入門(mén)教程--特性
C語(yǔ)言是世界上最流行、使用最廣泛的高級(jí)程序設(shè)計(jì)語(yǔ)言之一。在操作系統(tǒng)和系統(tǒng)使用程序以及需要對(duì)硬件進(jìn)行操作的場(chǎng)合,用C語(yǔ)言明顯優(yōu)于其它高級(jí)語(yǔ)言,許多大型應(yīng)用軟件都是用C語(yǔ)言編寫(xiě)的。C語(yǔ)言的主要特性有以下幾種:
1.C是高級(jí)語(yǔ)言:它把高級(jí)語(yǔ)言的基本結(jié)構(gòu)和語(yǔ)句與低級(jí)語(yǔ)言的實(shí)用性結(jié)合起來(lái)。
2.C是結(jié)構(gòu)式語(yǔ)言:結(jié)構(gòu)式語(yǔ)言的顯著特點(diǎn)是代碼及數(shù)據(jù)的分隔化,即程序的各個(gè)部分除了必要的信息交流外彼此獨(dú)立。
3.C語(yǔ)言功能齊全:具有各種各樣的數(shù)據(jù)類(lèi)型,并引入了指針概念,可使程序效率更高。而且計(jì)算功能、邏輯判斷功能也比較強(qiáng)大,可以實(shí)現(xiàn)決策目的的游戲。
4.C語(yǔ)言適用范圍大:適合于多種操作系統(tǒng),如Windows、DOS、UNIX等等;也適用于多種機(jī)型。
5.C語(yǔ)言應(yīng)用指針:可以直接進(jìn)行靠近硬件的操作,但是C的指針操作不做保護(hù),也給它帶來(lái)了很多不安全的因素。C++在這方面做了改進(jìn),在保留了指針操作的同時(shí)又增強(qiáng)了安全性。
6.C語(yǔ)言創(chuàng)始人D.M.Ritchie6、C語(yǔ)言文件由數(shù)據(jù)序列組成:可以構(gòu)成二進(jìn)制文件或文本文件常用的C語(yǔ)言IDE有Microsoft Visual C++,Dev-C++,Code::Blocks,Borland C++,Watcom C++,Borland C++ Builder,GNU DJGPP C++,Lccwin32 C Compiler 3.1,High C,Turbo C,C-Free,win-tc,xcode等。
4.c語(yǔ)言入門(mén)教程--基礎(chǔ)知識(shí)
數(shù)據(jù)類(lèi)型----C的數(shù)據(jù)類(lèi)型包括:整型、字符型、實(shí)型或浮點(diǎn)型、枚舉類(lèi)型、數(shù)組類(lèi)型、結(jié)構(gòu)體類(lèi)型、共用體類(lèi)型、指針類(lèi)型和空類(lèi)型。
常量與變量----常量其值不可改變,符號(hào)常量名通常用大寫(xiě)。變量是以某標(biāo)識(shí)符為名字,其值可以改變的量。變量在編譯時(shí)為其分配相應(yīng)存儲(chǔ)單元。
數(shù)組----C++語(yǔ)言代碼如果一個(gè)變量名后面跟著一個(gè)有數(shù)字的中括號(hào),這個(gè)聲明就是數(shù)組聲明。字符串也是一種數(shù)組。
指針----如果一個(gè)變量聲明時(shí)在前面使用 * 號(hào),表明這是個(gè)指針型變量。換句話說(shuō),該變量存儲(chǔ)一個(gè)地址,指針不僅可以是變量的地址,還可以是數(shù)組、數(shù)組元素、函數(shù)的地址。
字符串----C語(yǔ)言的字符串其實(shí)就是char型數(shù)組,使用字符型并不需要引用庫(kù),但是使用字符串就就需要C標(biāo)準(zhǔn)庫(kù)里面的一些用于對(duì)字符串進(jìn)行操作的函數(shù)。它們不同于字符數(shù)組。
文件輸入/輸出----在C語(yǔ)言中,輸入和輸出是經(jīng)由標(biāo)準(zhǔn)庫(kù)中的一組函數(shù)來(lái)實(shí)現(xiàn)的。標(biāo)準(zhǔn)輸入/輸出有三個(gè)標(biāo)準(zhǔn)輸入/輸出是標(biāo)準(zhǔn)I/O庫(kù)預(yù)先定義的:stdin標(biāo)準(zhǔn)輸入、stdout標(biāo)準(zhǔn)輸出、stderr輸入輸出錯(cuò)誤。
運(yùn)算----C語(yǔ)言的運(yùn)算非常靈活,功能十分豐富,運(yùn)算種類(lèi)遠(yuǎn)多于其它程序設(shè)計(jì)語(yǔ)言。
關(guān)鍵字----又稱(chēng)為保留字,就是已被C語(yǔ)言本身使用,不能作其它用途使用的字。例如關(guān)鍵字不能用作變量名、函數(shù)名等標(biāo)識(shí)符。由ANSI標(biāo)準(zhǔn)定義的C語(yǔ)言關(guān)鍵字共32個(gè):
auto double int struct break else long switch
case enum register typedef char extern return union
const float short unsigned continue for signed void
default goto sizeof volatile do if while static inline
restrict _Bool _Complex _Imaginary _Generic
5.c語(yǔ)言入門(mén)教程--語(yǔ)法結(jié)構(gòu)
順序結(jié)構(gòu)
順序結(jié)構(gòu)的程序設(shè)計(jì)是最簡(jiǎn)單的,只要按照解決問(wèn)題的順序?qū)懗鱿鄳?yīng)的語(yǔ)句就行,它的執(zhí)行順序是自上而下,依次執(zhí)行。順序結(jié)構(gòu)可以獨(dú)立使用構(gòu)成一個(gè)簡(jiǎn)單的完整程序,常見(jiàn)的輸入、計(jì)算,輸出三步曲的程序就是順序結(jié)構(gòu)。
選擇結(jié)構(gòu)
選擇結(jié)構(gòu)的執(zhí)行是依據(jù)一定的條件選擇執(zhí)行路徑,而不是嚴(yán)格按照語(yǔ)句出現(xiàn)的物理順序。選擇結(jié)構(gòu)的程序設(shè)計(jì)方法的關(guān)鍵在于構(gòu)造合適的分支條件和分析程序流程,根據(jù)不同的程序流程選擇適當(dāng)?shù)倪x擇語(yǔ)句。
循環(huán)結(jié)構(gòu)
循環(huán)結(jié)構(gòu)可以減少源程序重復(fù)書(shū)寫(xiě)的工作量,用來(lái)描述重復(fù)執(zhí)行某段算法的問(wèn)題,這是程序設(shè)計(jì)中最能發(fā)揮計(jì)算機(jī)特長(zhǎng)的程序結(jié)構(gòu),C語(yǔ)言中提供四種循環(huán),即goto循環(huán)、while循環(huán)、do while循環(huán)和for循環(huán)。
模塊化程序結(jié)構(gòu)
C語(yǔ)言的模塊化程序結(jié)構(gòu)用函數(shù)來(lái)實(shí)現(xiàn),即將復(fù)雜的C程序分為若干模塊,每個(gè)模塊都編寫(xiě)成一個(gè)C函數(shù),然后通過(guò)主函數(shù)調(diào)用函數(shù)及函數(shù)調(diào)用函數(shù)來(lái)實(shí)現(xiàn)一大型問(wèn)題的C程序編寫(xiě),因此常說(shuō):C程序=主函數(shù)+子函數(shù)。因此,對(duì)函數(shù)的定義、調(diào)用、值的返回等中要尤其注重理解和應(yīng)用,并通過(guò)上機(jī)調(diào)試加以鞏固。
拓展閱讀:
1.單片機(jī)C語(yǔ)言入門(mén)教程
2.單片機(jī)C語(yǔ)言教程-基礎(chǔ)語(yǔ)句
3.單片機(jī)C語(yǔ)言的好處
標(biāo)簽: c語(yǔ)言入門(mén)教程