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

全部開(kāi)發(fā)者教程

C 語(yǔ)言入門教程

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

C語(yǔ)言簡(jiǎn)介

圖片描述

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

1. C語(yǔ)言的起源

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

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

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

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

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

語(yǔ)言 年份 開(kāi)發(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 語(yǔ)言發(fā)展歷程 [3]

圖片描述

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

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

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

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

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

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

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

圖片描述

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

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

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

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

5. C 語(yǔ)言的幾個(gè)主要版本

從 C 語(yǔ)言發(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 語(yǔ)言執(zhí)行的標(biāo)準(zhǔn)是 ISO/IEC 9899:2011,我們?cè)谡n程中也會(huì)遵循此標(biāo)準(zhǔn)來(lái)完成代碼。

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

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

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

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

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