第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

全部開發(fā)者教程

C 語言入門教程

C 語言基礎(chǔ)教程
01 C 語言簡介 02 C 語言的程序結(jié)構(gòu) 03 C 語言的編譯 04 C 語言的標(biāo)準(zhǔn) 05 C 語言中的注釋 06 C 語言中的變量 07 C 語言中的變量類型 08 C 語言的常量 09 C 語言的輸入與輸出 10 C 語言中的 printf() 格式輸出 11 C 語言中的類型轉(zhuǎn)換 12 C 語言中的運(yùn)算符 13 C 語言中的算數(shù)運(yùn)算符 14 C 語言中的位運(yùn)算符 15 C 語言中的邏輯運(yùn)算符 16 C 語言中的三目運(yùn)算符 17 C 語言中的分支結(jié)構(gòu) 18 C 語言中的多重分支 19 C 語言中的分支嵌套結(jié)構(gòu) 20 C 語言中的循環(huán)結(jié)構(gòu) 21 C 語言中的 while 循環(huán) 22 C 語言中的 do-While 循環(huán) 23 C 語言中的 for 循環(huán) 24 C 語言中的多重循環(huán)嵌套 25 循環(huán)實戰(zhàn),打印九九乘法表 26 C 語言中的break和continue 27 C 語言中的 if 語句 28 C 語言中的 switch/case 語句 29 C 語言中的函數(shù) 30 C 語言函數(shù)的定義和聲明 31 C 語言中函數(shù)的參數(shù)傳入類型 32 C 語言中的 main() 函數(shù)參數(shù) 33 make 工具 makefile 34 C 語言中的數(shù)組 35 C 語言中的多維數(shù)組 36 數(shù)組的練習(xí) 37 C 語言中的字符串 38 C 語言中的字符串函數(shù) 39 C 語言字符串練習(xí) 40 C 語言中的指針 41 C 語言中的 struct 42 C 語言中的 union 43 C 語言中的 maclloc free() 44 C 語言中的 enum 45 整體練習(xí)-學(xué)生管理系統(tǒng)

C語言簡介

圖片描述

圖片來源于網(wǎng)絡(luò)

1. C語言的起源

C 語言是一種高級語言,最初由 Dennis M. Ritchie [1] 為了開發(fā)一個操作系統(tǒng)而設(shè)計,最早在 1972 年在 DEC PDP-11 計算機(jī)上被首次實現(xiàn)。

2. 一次不務(wù)正業(yè)的發(fā)明

C 語言的發(fā)明和很多偉大的發(fā)明一樣,都是一個人或者幾個人不務(wù)正業(yè)閑著沒事偶然間發(fā)明的。據(jù)說當(dāng)時有一個年輕人為了能夠在一臺上機(jī)費(fèi)更便宜的計算機(jī)上愉快的進(jìn)行兩人對戰(zhàn)游戲,但不幸的是,這臺機(jī)器上原有的操作系統(tǒng)只能支持一個人在線游戲,于是這位熱愛游戲的年輕人不得不重新為這臺機(jī)器編寫一個新的操作系統(tǒng),可以支持多用戶,這樣大家就可以一起同時在線玩這個游戲了。而在編寫這個操作系統(tǒng)的過程中,他們對 B 語言進(jìn)行了升級,于是 C 語言誕生了。

這個發(fā)明 C 語言的年輕人叫丹尼斯?里奇 Dennis M. Ritchie [1]。C 語言派生自 BCPL 語言,并且 C 語言對 BCPL 語言有了長足的擴(kuò)展。因為 BCPL 簡稱為 B 語言,因此 C 語言就采用了字母表中的下一個字母來作為語言的名稱。講真這名字起得夠隨意的,不過話說回來了 B 語言這名字好像就是來自 A 語言的,有興趣的同學(xué)可以去了解一下這三門語言之間的淵源,在這里我們就不多贅述了。

下面是一個 C 語言發(fā)展歷史的列表:

語言 年份 開發(fā)者
Algol 1960 International Group
BCPL 1967 Martin Richard
B 1970 Ken Thompson
Traditional C 1972 Dennis Ritchie
K & R C 1978 Kernighan & Dennis Ritchie
ANSI C 1989 ANSI Committee
ANSI/ISO C 1990 ISO Committee
C99 1999 Standardization Committee
表1: C 語言發(fā)展歷程 [3]

圖片描述

圖1: C 語言發(fā)明者 Dennis Ritchie [2]

3. C 語言的應(yīng)用

了解了發(fā)明過程就大致知道了 C 語言的應(yīng)用場景?;镜膽?yīng)用場景是操作系統(tǒng)的編寫。

當(dāng)然現(xiàn)在 C 語言的應(yīng)用已經(jīng)大大超出了這個范圍。因為 C 語言與生俱來的特性是很容易與底層硬件打交道,所以目前 C 語言大量應(yīng)用在需要直接硬件交互的場景。比如最近很多的物聯(lián)網(wǎng)中的嵌入式設(shè)備,底層驅(qū)動,高性能計算,游戲后端服務(wù),圖形處理等等。

但是由于 C 語言不支持原生的面向?qū)ο蟮拈_發(fā)模式,因此有人說過,對于 C 語言,最大的工程就是開發(fā)一個操作系統(tǒng)。

如果你想開發(fā)更為復(fù)雜的系統(tǒng),請使用別的語言。但是這不代表 C 語言已經(jīng)過時了。恰恰相反, C 語言正在我們的生活中發(fā)揮著比以前更為重要的角色,你的手機(jī),你的身邊的智能終端,甚至你家的掃地機(jī)器人,都無時不刻都有 C 語言的身影。
圖片描述

圖2: 用 C 語言實現(xiàn)的 MP3 播放器 [4]

圖片描述

圖2: 用 C 語言實現(xiàn)的 MP3 播放器內(nèi)部 [4]

4. C 語言的特點(diǎn)

C 語言有如下的特點(diǎn):

  • 代碼簡潔不繁瑣;
  • 具有良好的可移植性,代碼與機(jī)器底層獨(dú)立(相對于匯編語言而言);
  • 屬于中層編程語言(底層的為匯編語言等,高層的為 Java 語言等);
  • 結(jié)構(gòu)化語言;
  • 豐富的程序庫可以使用;
  • 可以直接管理內(nèi)存;
  • 運(yùn)行速度快;
  • 提供了指針操作;
  • 可以使用遞歸;
  • 具有良好的擴(kuò)展性。

5. C 語言的幾個主要版本

從 C 語言發(fā)明到現(xiàn)在經(jīng)歷了如下的標(biāo)準(zhǔn):

版本 標(biāo)準(zhǔn) 發(fā)布日期
K&R n/a 1978-02-22
C89 ANSI X3.159-1989 1989-12-14
C90 ISO/IEC 9899:1990 1990-12-20
C95 ISO/IEC 9899/AMD1:1995 1995-03-30
C99 ISO/IEC 9899:1999 1999-12-16
C11 ISO/IEC 9899:2011 2011-12-15

目前 C 語言執(zhí)行的標(biāo)準(zhǔn)是 ISO/IEC 9899:2011,我們在課程中也會遵循此標(biāo)準(zhǔn)來完成代碼。

6. 我們?yōu)槭裁匆獙W(xué)習(xí) C 語言

如果你想要從事下面的工作,那么 C 語言將是你非常好的一個選擇:

  1. 從事需要直接操作操作硬件的編程的嵌入式設(shè)備開發(fā),不需要操作系統(tǒng)的支持。比如我們常見的冰箱,洗衣機(jī)等等的控制;
  2. 嵌入式操作系統(tǒng)和實時操作環(huán)境下的開發(fā);
  3. 基于 Linux 操作系統(tǒng)下的一些應(yīng)用程序。主要是中間層面應(yīng)用的開發(fā),直接可以與底層硬件交互,而本身又不直接與最終用戶進(jìn)行交互;
  4. 音頻和視頻的解碼器和編碼器等;
  5. 協(xié)議棧的開發(fā)。

7. 學(xué)習(xí)基礎(chǔ)

在這個教程中,大家最好能夠?qū)τ?Linux 操作系統(tǒng)有使用經(jīng)驗。有簡單的 Shell 命令使用經(jīng)驗。我們遇到的所有的操作基本都是通過命令行來進(jìn)行的。雖然我也很喜歡圖形界面操作,這也是趨勢,但是 C 語言目前主要的應(yīng)用場景都是在 Linux 下,所以大家最好學(xué)習(xí)一下相關(guān)的知識。