C程序設(shè)計(jì)-譚浩強(qiáng) 第三版-學(xué)習(xí)筆記

第一章 C語(yǔ)言概述

1.C語(yǔ)言歷史背景

  • C語(yǔ)言是在B語(yǔ)言的基礎(chǔ)上發(fā)展起來(lái)的,兼具一般高級(jí)語(yǔ)言和低級(jí)語(yǔ)言的優(yōu)點(diǎn),可用來(lái)編寫系統(tǒng)軟件或應(yīng)用軟件。

  • 1972-1973年,貝爾實(shí)驗(yàn)室在B語(yǔ)言基礎(chǔ)上設(shè)計(jì)出C語(yǔ)言。

  • 1975年,UNIX第6版發(fā)布,C語(yǔ)言突出特點(diǎn)引起廣泛關(guān)注。

  • 1977年,不依賴于具體機(jī)器的可移植的C語(yǔ)言編譯文本。

  • 1978年后,C語(yǔ)言先后移植到大、中、小、微型計(jì)算機(jī)上,獨(dú)立于 UNIX 和 PDP。

  • C語(yǔ)言與UNIX在發(fā)展過(guò)程中是相輔相成的。

  • 以1978年發(fā)布的 UNIX第7版 中的C語(yǔ)言編譯程序?yàn)榛A(chǔ),Brian W.Kernighan 和 Dennis M. Ritchie (K&R)合著了《The C Programming Language》。

  • 1989年,ANSI公司發(fā)布第一個(gè)完整的 C語(yǔ)言標(biāo)準(zhǔn),C89。(American National Standard Institute 美國(guó)標(biāo)準(zhǔn)化協(xié)會(huì))

  • 1990年,國(guó)際標(biāo)準(zhǔn)化組織 ISO(International Standard Organization)接受 C89 為ISO C標(biāo)準(zhǔn),C90。 C90與C89基本相同。

  • 1999年, ISO 重新修訂了C語(yǔ)言標(biāo)準(zhǔn),簡(jiǎn)稱 C99。

2.C語(yǔ)言特點(diǎn)

  1. 語(yǔ)言簡(jiǎn)潔、緊湊,使用方便、靈活。32個(gè)關(guān)鍵字,9種控制語(yǔ)句,程序書寫形式自由,主要用小寫字母表示,壓縮了一切不必要的成分。

  2. 運(yùn)算符豐富。C語(yǔ)言運(yùn)算符包含的范圍很廣泛,共有34種運(yùn)算符。C語(yǔ)言把括號(hào)、賦值、強(qiáng)制類型轉(zhuǎn)換等都作為運(yùn)算符處理,從而使C語(yǔ)言的運(yùn)算類型極其豐富,表達(dá)式類型多樣化。語(yǔ)法限制不太嚴(yán)格,程序設(shè)計(jì)自由度大

  3. 數(shù)據(jù)類型豐富。C語(yǔ)言提供的數(shù)據(jù)類型有:整型、浮點(diǎn)型、字符型、數(shù)組類型、指針類型、結(jié)構(gòu)體類型、共用體類型等,能用來(lái)實(shí)現(xiàn)各種復(fù)雜的數(shù)據(jù)結(jié)構(gòu)的運(yùn)算(如鏈表、樹、棧等)。尤其是指針類型數(shù)據(jù),使用十分靈活和多樣化。

  4. 具有結(jié)構(gòu)化的控制語(yǔ)句(if...else語(yǔ)句、while語(yǔ)句、do...while語(yǔ)句、switch語(yǔ)句、for語(yǔ)句)。用函數(shù)作為程序的模塊單位,便于實(shí)現(xiàn)程序的模塊化。C語(yǔ)言是完全模塊化和結(jié)構(gòu)化的語(yǔ)言。

  5. 語(yǔ)法限制不太嚴(yán)格,程序設(shè)計(jì)自由度大。程序員需仔細(xì)檢查程序,保證其正確。

  6. 允許直接訪問(wèn)物理地址,能進(jìn)行位操作,能實(shí)現(xiàn)匯編語(yǔ)言的大部分功能,可以直接對(duì)硬件進(jìn)行操作。

  7. 生成目標(biāo)代碼質(zhì)量高,程序執(zhí)行效率高。C語(yǔ)言一般只比匯編程序生成的目標(biāo)代碼效率低10%~20%

  8. 程序可移植性好(與匯編語(yǔ)言相比)。

3.簡(jiǎn)單的C語(yǔ)言程序介紹

  • C語(yǔ)言是有函數(shù)構(gòu)成的。一個(gè)C元源程序至少且僅包含一個(gè)main函數(shù),也可以包含一個(gè)main函數(shù)和若干個(gè)其他函數(shù)。函數(shù)是C程序的基本單位。被調(diào)用的函數(shù)可以是系統(tǒng)提供的庫(kù)函數(shù)(如printf 和 scanf 函數(shù)),也可以是用戶根據(jù)需求自己編制設(shè)計(jì)的函數(shù)。 C中的 函數(shù) 相當(dāng)于其他語(yǔ)言中的 子程序。用函數(shù)來(lái)實(shí)現(xiàn)特定的功能,程序的全部工作都是由各個(gè)函數(shù)分別完成的。

  • 一個(gè)函數(shù)由兩部分組成,函數(shù)的首部 和 函數(shù)體。

  1. 函數(shù)首部:函數(shù)的第一行,包括函數(shù)名、函數(shù)類型、函數(shù)參數(shù)(形式參數(shù))名、參數(shù)類型

    1. 例如: int max (int x, int y)

    2. 函數(shù)類型 函數(shù)名 函數(shù)參數(shù)類型 函數(shù)參數(shù)名

  2. 函數(shù)體:函數(shù)首部下面的花括號(hào)內(nèi)的部分。如果一個(gè)函數(shù)內(nèi)有多個(gè)花括號(hào),則最外面的為函數(shù)體范圍。

    1. 聲明部分:定義所用到的變量和對(duì)所調(diào)用函數(shù)的聲明

    2. 執(zhí)行部分:由若干個(gè)語(yǔ)句組成

  • 一個(gè)C程序總是從main函數(shù)開始執(zhí)行的,main函數(shù)的位置任意。

  • C 程序 書寫格式自由。多數(shù)C編譯系統(tǒng)允許一行內(nèi)寫幾個(gè)語(yǔ)句,一個(gè)語(yǔ)句可以分寫在多行上,C程序沒有行號(hào)。C99標(biāo)準(zhǔn)不支持一行內(nèi)寫多個(gè)語(yǔ)句。

  • 每個(gè)語(yǔ)句和數(shù)據(jù)聲明的最后必須有一個(gè)分號(hào)。分號(hào)是C語(yǔ)句的必要組成部分,即使是程序中的最后一個(gè)語(yǔ)句也應(yīng)包含分號(hào)。

  • C語(yǔ)言本身沒有輸入輸出語(yǔ)句。輸入和輸出的操作是由庫(kù)函數(shù)scanf和printf等函數(shù)完成。

  • 可以用 /*......*/對(duì)C程序的某行或某幾行做注釋。一個(gè)好的,有價(jià)值的程序都應(yīng)該有注釋,以增加程序的可讀性。

4.C語(yǔ)言程序的運(yùn)行

  • 運(yùn)行C程序的步驟

    • 程序:一組計(jì)算機(jī)指令,每一條指令使計(jì)算機(jī)執(zhí)行特定的操作。

    • 編輯 → 編譯 → 鏈接 → 執(zhí)行

    • 源程序 → 目標(biāo)程序 → 連接 → 可執(zhí)行的目標(biāo)程序

  • C 程序運(yùn)行流程圖


    1.1C程序運(yùn)行流程圖.png
  • VC6.0 常見文件格式

    • .c .exe .NCB .PCH

    • .cpp .DSP .PLG .PDB

    • .obj .DSW .ILK

#include <stdio.h>
 void main ()
 {
  printf("This is a C program. \n ");
 }
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容