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