
- C程式設計教程
- C - 首頁
- C語言基礎
- C語言 - 概述
- C語言 - 特性
- C語言 - 歷史
- C語言 - 環境搭建
- C語言 - 程式結構
- C語言 - Hello World
- C語言 - 編譯過程
- C語言 - 註釋
- C語言 - 詞法單元
- C語言 - 關鍵字
- C語言 - 識別符號
- C語言 - 使用者輸入
- C語言 - 基本語法
- C語言 - 資料型別
- C語言 - 變數
- C語言 - 整數提升
- C語言 - 型別轉換
- C語言 - 型別強制轉換
- C語言 - 布林值
- C語言中的常量和字面量
- C語言 - 常量
- C語言 - 字面量
- C語言 - 轉義序列
- C語言 - 格式說明符
- C語言中的運算子
- C語言 - 運算子
- C語言 - 算術運算子
- C語言 - 關係運算符
- C語言 - 邏輯運算子
- C語言 - 位運算子
- C語言 - 賦值運算子
- C語言 - 一元運算子
- C語言 - 自增和自減運算子
- C語言 - 三元運算子
- C語言 - sizeof運算子
- C語言 - 運算子優先順序
- C語言 - 其他運算子
- C語言中的決策機制
- C語言 - 決策機制
- C語言 - if語句
- C語言 - if...else語句
- C語言 - 巢狀if語句
- C語言 - switch語句
- C語言 - 巢狀switch語句
- C語言中的迴圈
- C語言 - 迴圈
- C語言 - while迴圈
- C語言 - for迴圈
- C語言 - do...while迴圈
- C語言 - 巢狀迴圈
- C語言 - 死迴圈
- C語言 - break語句
- C語言 - continue語句
- C語言 - goto語句
- C語言中的函式
- C語言 - 函式
- C語言 - 主函式
- C語言 - 按值呼叫函式
- C語言 - 按引用呼叫函式
- C語言 - 巢狀函式
- C語言 - 可變引數函式
- C語言 - 使用者自定義函式
- C語言 - 回撥函式
- C語言 - 返回語句
- C語言 - 遞迴
- C語言中的作用域規則
- C語言 - 作用域規則
- C語言 - 靜態變數
- C語言 - 全域性變數
- C語言中的陣列
- C語言 - 陣列
- C語言 - 陣列的特性
- C語言 - 多維陣列
- C語言 - 將陣列傳遞給函式
- C語言 - 從函式返回陣列
- C語言 - 變長陣列
- C語言中的指標
- C語言 - 指標
- C語言 - 指標和陣列
- C語言 - 指標的應用
- C語言 - 指標運算
- C語言 - 指標陣列
- C語言 - 指向指標的指標
- C語言 - 將指標傳遞給函式
- C語言 - 從函式返回指標
- C語言 - 函式指標
- C語言 - 指向陣列的指標
- C語言 - 指向結構體的指標
- C語言 - 指標鏈
- C語言 - 指標與陣列
- C語言 - 字元指標和函式
- C語言 - 空指標
- C語言 - void指標
- C語言 - 野指標
- C語言 - 指標解引用
- C語言 - 近指標、遠指標和巨大指標
- C語言 - 指標陣列的初始化
- C語言 - 指標與多維陣列
- C語言中的字串
- C語言 - 字串
- C語言 - 字串陣列
- C語言 - 特殊字元
- C語言結構體和聯合體
- C語言 - 結構體
- C語言 - 結構體和函式
- C語言 - 結構體陣列
- C語言 - 自引用結構體
- C語言 - 查詢表
- C語言 - 點(.)運算子
- C語言 - 列舉(或列舉型別)
- C語言 - 結構體填充和打包
- C語言 - 巢狀結構體
- C語言 - 匿名結構體和聯合體
- C語言 - 聯合體
- C語言 - 位段
- C語言 - typedef
- C語言中的檔案處理
- C語言 - 輸入與輸出
- C語言 - 檔案I/O(檔案處理)
- C預處理器
- C語言 - 預處理器
- C語言 - 預處理指令
- C語言 - 預處理器運算子
- C語言 - 宏
- C語言 - 標頭檔案
- C語言中的記憶體管理
- C語言 - 記憶體管理
- C語言 - 記憶體地址
- C語言 - 儲存類別
- 其他主題
- C語言 - 錯誤處理
- C語言 - 可變引數
- C語言 - 命令執行
- C語言 - 數學函式
- C語言 - static關鍵字
- C語言 - 隨機數生成
- C語言 - 命令列引數
- C程式設計資源
- C語言 - 問答
- C語言 - 快速指南
- C語言 - 速查表
- C語言 - 有用資源
- C語言 - 討論
C語言歷史
C程式設計 是一種通用的、面向過程的程式語言。它既是機器無關的,又是結構化的。C 是一種高階程式語言,由丹尼斯·裡奇 (Dennis Ritchie) 於 20 世紀 70 年代初開發。如今,它是世界上最流行和最有影響力的程式語言之一。
C語言因其簡潔性、效率和多功能性而廣受歡迎。它具有強大的特性,包括低階記憶體訪問、豐富的運算子集和模組化框架。
除了在計算機程式設計技術發展方面的重要性之外,C語言的設計也深刻地影響了當今使用的許多其他程式語言。受C語言影響的語言包括Java、PHP、JavaScript、C#、Python等等。這些語言都從C語言借鑑了語法、控制結構和其他基本特性。
C語言由於其可移植性,支援不同的硬體和作業系統。通常,它被認為是一種基礎語言,並影響了許多其他計算機語言。它在學術界和工業界得到最廣泛的應用。C語言的相關性和廣泛接受度使其對未來的程式設計師至關重要。
C程式語言的歷史相當引人入勝,並且在計算機科學和軟體工程的發展中起著關鍵作用。
程式語言按年份發展如下:

C語言歷史概述
以下是C語言歷史的簡要概述:
C程式語言的起源
'ALGOL'是程式語言的基礎或先驅。它於1960年首次推出。'ALGOL'在歐洲國家廣泛使用。ALGOL向開發者社群引入了結構化程式設計的概念。1967年,出現了一種名為'BCPL'的新型計算機程式語言,它是Basic Combined Programming Language的縮寫。BCPL是由馬丁·理查茲(Martin Richards)在20世紀60年代中期設計的。

丹尼斯·裡奇(Dennis Ritchie)在20世紀70年代初在貝爾實驗室建立了C語言。它發展自肯·湯普森(Ken Thompson)建立的一種較舊的語言B。建立C語言的主要目的是構建Unix作業系統,這對於現代計算機的發展至關重要。BCPL、B和C都穩固地屬於傳統的程式化家族,其典型代表是Fortran和Algol 60。BCPL、B和C在許多細節上語法不同,但總體上它們是相似的。
C程式語言的發展
1971年,丹尼斯·裡奇開始研究C語言,他和貝爾實驗室的其他開發人員不斷改進它。該語言既適用於系統程式設計,也適用於應用程式開發,因為它設計得簡單、高效且可移植。
C程式語言的標準化
丹尼斯·裡奇於1971年開始開發C語言,並與貝爾實驗室的其他開發人員合作對其進行了改進。該語言在設計時考慮了可移植性、簡潔性和效率,使其適用於應用程式和系統程式設計。
傳統C語言之後的C語言版本歷史
K&R C
丹尼斯·裡奇和布萊恩·科尼漢(Brian Kernighan)出版了他們的著作《C程式設計語言》的第一版。該書通常被稱為K&R(作者的姓名首字母),多年來一直是該語言的非正式規範。它所描述的C語言版本通常被稱為“K&R C”。它也被稱為C78。
K&R C中引入的許多C語言特性至今仍在2018年才批准的語言版本中保留。在早期的C語言版本中,只有返回型別不是int的函式,如果在函式定義之前使用,才必須宣告;未經事先宣告的函式被認為返回型別為int。
AT&T和其他廠商的C編譯器支援新增到K&R C語言中的幾個特性。雖然C語言開始流行,但在實現上缺乏統一性。因此,人們認為必須對語言規範進行標準化。
ANSI C
20世紀80年代,美國國家標準學會(ANSI)開始致力於C語言的正式標準。這導致了ANSI C的開發,該標準於1989年制定。ANSI C引入了幾個新特性,並闡明瞭早期C語言版本中存在的歧義。
C89/C90
ANSI C標準被國際採用,被稱為C89(或C90,取決於批准年份)。多年來,它一直是編譯器和開發工具的基礎。
C99
1999年,國際標準化組織/國際電工委員會(ISO/IEC)批准了C標準的更新版本,稱為C99。C標準在20世紀90年代後期進一步修訂。
C99引入了新的特性,包括行內函數、幾種新的資料型別(例如表示複數的複數型別)和變長陣列等。它還增加了對C++風格的單行註釋的支援,以//開頭。
C11
C11於2011年釋出,是C標準的另一個主要修訂版。C11標準為C語言及其庫添加了新特性,並引入了諸如多執行緒支援、匿名結構體和聯合體以及改進的Unicode支援等特性。
它包括型別通用宏、匿名結構體、改進的Unicode支援、原子操作、多執行緒和邊界檢查函式。它與C++的相容性有所提高。
C17
C17標準已於2018年6月釋出。C17是C程式語言的當前標準。此標準修訂版沒有引入新特性。它只對C11中的缺陷進行了一些技術修正和說明。
C18
C標準的最新版本C18於2018年釋出。與C11相比,它包含了一些小的修訂和錯誤修復。
C23
C23是下一個主要C語言標準修訂版的非正式名稱,預計將於2024年釋出。預計此修訂版將引入14個新的關鍵字。
C語言由於其簡潔性、效率和多功能性而長期保持流行。它已被用於建立各種各樣的軟體,包括作業系統、嵌入式系統、應用程式和遊戲。C語言的語法和語義也影響了不同的現代程式語言,例如C++、Java和Python。