⑴ c語言教程的目錄
第0章從零開始
0.1為什麼要用C
0.2ANSIC標准
0.3從C到C++
0.4從C和C++到Java
第1章C語言概述
第1章C語言概述
1.1C語言發展簡史
1.2C語言的特點
1.3簡單C語言程序舉例
1.4C語言程序的組成與結構
1.5C語言程序的開發步驟
小結
習題
第2章演算法與程序設計基礎
2.1演算法概述
2.1.1演算法的概念
2.1.2演算法的特徵
2.2演算法的常用表示方法
2.2.1自然語言
2.2.2流程圖
2.2.3N—S流程圖
2.3程序設計典型演算法
2.4結構化程序設計方法
小結
習題
第3章數據類型、運算符與表達式
3.1C語言的基本符號
3.1.1標識符
3.1.2常量
3.1.3變數
3.1.4關鍵字
3.2C語言的數據類型
3.2.1整型數據
3.2.2實型數據
3.2.3字元型數據
3.3運算符和表達式
3.3.1算術運算符和算術表達式
3.3.2賦值運算符和賦值表達式
3.3.3逗號運算符和逗號表達式
3.4數據類型轉換
3.4.1不同數據類型的數據間的混合運算
3.4.2強制類型轉換
3.5自增運算和自減運算
3.6位運算
小結
習題
第4章數據的輸入和輸出
4.1數據的輸出
4.1.1格式輸出函數printf
4.1.2字元輸出函數putchar
4.2數據的輸入
4.2.1格式輸入函數scanf
4.2.2字元輸入函數getchar
4.3應用舉例
小結
習題
第5章選擇結構
5.1關系運算符和關系表達式
5.1.1關系運算符
5.1.2關系表達式
5.2邏輯運算符和邏輯表達式
5.2.1邏輯運算符
5.2.2邏輯表達式
5.3選擇語句
5.3.1if語句
5.3.2if語句的嵌套
5.3.3switch語句
5.4條件運算符和條件表達式
5.5應用舉例
小結
習題
第6章循環結構
6.1goto語句與標號
……
第7章數 組
第8章函數
第9章指針
第10章結構體與共用體
第11章文件
第12章面向對象程序設計與C++基礎
第13章數據結構基礎
附錄AC語言的關鍵字
附錄B雙目算術運算中兩邊運算類型轉換規律
附錄C運算符的優先順序和結合性
附錄D常用字元與ASCII碼對照表
附錄E常用庫函數
參考文獻
⑵ C語言的發展史是怎樣的
發展史:
C語言的祖先是BCPL語言。
1967年,劍橋大學的 Martin Richards 對CPL語言進行了簡化,於是產生了BCPL(Basic Combined Pogramming Language)語言。
1970年,美國貝爾實驗室的 Ken Thompson。以BCPL語言為基礎,設計出很簡單且很接近硬體的B語言(取BCPL的首字母)。並且他用B語言寫了第一個UNIX操作系統。
在1972年,美國貝爾實驗室的 D.M.Ritchie 在B語言的基礎上最終設計出了一種新的語言,他取了BCPL的第二個字母作為這種語言的名字,這就是C語言。
為了使UNIX操作系統推廣,1977年Dennis M.Ritchie發表了不依賴於具體機器系統的C語言編譯文本《可移植的C語言編譯程序》。
1978年由美國電話電報公司(AT&T)貝爾實驗室正式發表了C語言。
1990年,國際標准化組織ISO(International Organization for Standards)接受了89 ANSI C 為I SO C 的標准(ISO9899-1990)。
1994年,ISO修訂了C語言的標准。
1995年,ISO對C90做了一些修訂,即「1995基準增補1(ISO/IEC/9899/AMD1:1995)」。
1999年,ISO有對C語言標准進行修訂,在基本保留原來C語言特徵的基礎上,針對應該的需要,增加了一些功能,尤其是對C++中的一些功能,命名為ISO/IEC9899:1999。
2001年和2004年先後進行了兩次技術修正。
目前流行的C語言編譯系統大多是以ANSI C為基礎進行開發的,但不同版本的C編譯系統所實現的語言功能和語法規則有略有差別。
⑶ 從零開始學C語言的目 錄
第1篇 C語言入門
第1章 C語言入門基礎 14
1.1 計算機語言的演變 14
1.1.1 機器語言 14
1.1.2 匯編語言 14
1.1.3 高級語言 14
1.1.4 面向對象或面向問題的高級語言 15
1.2 數制、數制轉換與存儲 15
1.2.1 數制 15
1.2.2 數制的轉換 16
1.2.3 計算機中數據的存儲 17
1.3 程序設計思想——演算法 18
1.3.1 演算法的概念 18
1.3.2 演算法的特點 18
1.3.3 演算法的表示方法 19
1.3.4 演算法分析 21
1.4 C語言的發展簡史和特點 21
1.4.1 C語言的誕生與發展 22
1.4.2 C語言的特點 23
1.5 本章小結 24
1.6 習題 24
第2章 認識C語言程序 25
2.1 C語言程序的結構特徵 25
2.2 C語言程序的書寫風格 27
2.3 C語言程序的開發過程 28
2.4 Visual C++集成開發環境 29
2.4.1 熟悉Visual C++ 6.0集成開發環境 30
2.4.2 C語言在Visual C++ 6.0的開發過程 31
2.5 用Visual C++運行一個C程序 32
2.6 本章小結 33
2.7 習題 33
第2篇 C語言基礎
第3章 常量、變數與標識符 34
3.1 標識符 34
3.1.1 標識的命名 34
3.1.2 保留字 34
3.2 常量 35
3.2.1 直接常量 35
3.2.2 符號常量 35
3.3 變數 36
3.3.1 變數的定義 36
3.3.2 變數的初始化 36
3.4 變數的初始化 37
3.5 本章小結 37
3.6 習題 37
第4章 數據類型 38
4.1 C語言中的數據類型 38
4.1.1 基本數據類型 38
4.1.2 構造數據類型 39
4.1.3 指針數據類型 39
4.1.4 空類型 39
4.2 整型數據 39
4.2.1 整型常量 40
4.2.2 整型變數 40
4.3 實數型數據 41
4.3.1 實數型常量 42
4.3.2 實數型變數 42
4.4 字元型數據 43
4.4.1 字元型常量 43
4.4.2 字元型變數 44
4.5 數值型數據間的混合運算 46
4.5.1 自動類型轉換 46
4.5.2 強制類型轉換 47
4.6 本章小結 49
4.7 習題 49
第5章 運算符及其表達式 50
5.1 算術運算符及算術表達式 50
5.1.1 算術運算符 50
5.1.2 算術表達式 52
5.2 賦值運算符及賦值表達式 52
5.2.1 賦值運算符 53
5.2.2 賦值表達式 54
5.3 關系運算符及關系表達式 55
5.3.1 關系運算符 55
5.3.2 關系表達式 56
5.4 邏輯運算符及邏輯表達式 57
5.4.1 邏輯運算符 57
5.4.2 邏輯運算規則 58
5.4.3 邏輯表達式 59
5.5 條件運算符及條件表達式 61
5.5.1 條件運算符 61
5.5.2 條件表達式 62
5.6 逗號運算符及逗號表達式 65
5.6.1 逗號運算符 65
5.6.2 逗號表達式 66
5.7 位運算符 67
5.7.1 位邏輯運算符 67
5.7.2 移位運算符 69
5.7.3 位自反賦值運算符 70
5.8 位運算符 71
5.9 本章小結 72
5.10 習題 72
第6章 輸入與輸出 73
6.1 C語句概述 73
6.1.1 流程式控制制語句 73
6.1.2 函數調用語句 77
6.1.3 表達式語句 77
6.1.4 空語句 77
6.1.5 復合語句 77
6.2 輸入與輸出函數 78
6.2.1 格式輸出函數 78
6.2.2 格式輸入函數 81
6.2.3 字元輸入與字元輸出函數 85
6.3 整型數據的輸入與輸出 87
6.3.1 整型數據的輸出 87
6.3.2 整型數據的輸入 89
6.4 浮點型數據的輸入與輸出 89
6.5 本章小結 90
6.6 習題 90
第7章 順序結構與選擇結構 91
7.1 順序結構程序設計 91
7.2 選擇結構程序設計 93
7.2.1 if語句 93
7.2.2 switch語句 98
7.3 應用舉例 101
7.4 本章小結 104
7.5 習題 104
第8章 循環結構程序設計 105
8.1 while語句 105
8.2 do…while語句 107
8.3 for語句 110
8.3.1 for循環結構 110
8.3.2 for循環語句的嵌套 113
8.4 總結應用 115
8.4.1 幾種循環的比較 115
8.4.2 循環語句的嵌套 116
8.4.3 應用舉例 118
8.5 本章小結 121
8.6 習題 121
第9章 結構語句的轉移 122
9.1 break語句 122
9.1.1 跳出switch結構 122
9.2 跳出循環結構 124
9.2.1 問題1 124
9.2.2 問題2 125
9.3 continue語句 126
9.4 goto語句 127
9.5 本章小結 128
9.6 習題 128
第3篇 C語言進階
第10章 數組 129
10.1 數組的概述 129
10.2 一維數組 130
10.2.1 一維數組的定義 130
10.2.2 一維數組的初始化 131
10.2.3 一維數組的引用 132
10.2.4 一維數組的程序舉例 133
10.3 二維數組 139
10.3.1 二維數組的定義 139
10.3.2 二維數組的初始化 140
10.3.3 二維數組的引用 142
10.3.4 數組的程序舉例 144
10.4 本章小結 146
10.5 習題 146
第11章 字元數組 147
11.1 字元數組的定義 147
11.2 字元數組的初始化 147
11.3 字元數組的引用 148
11.4 字元數組與字元串的關系 148
11.5 字元數組的輸入與輸出 149
11.6 字元串處理函數 150
11.6.1 輸入字元串函數gets 151
11.6.2 輸出字元串函數puts 151
11.6.3 字元串測長度函數strlen 151
11.6.4 字元串比較函數strcmp 151
11.6.5 字元串復制函數strcpy和strncpy 152
11.6.6 字元串連接函數strcat 152
11.7 應用舉例 153
11.8 本章小結 158
11.9 習題 158
第12章 函數 159
12.1 函數的初步認識 159
12.2 函數定義 161
12.2.1 無參函數定義 161
12.2.2 有參函數定義 162
12.2.3 空函數定義 162
12.3 函數參數及返回值 163
12.3.1 函數的參數 163
12.3.2 函數的返回值 165
12.4 函數的參數傳遞 166
12.4.1 函數參數的數值傳遞 166
12.4.2 函數參數的地址傳遞 167
12.5 應用舉例 168
12.6 本章小結 170
12.7 習題 170
第13章 函數的調用 171
13.1 函數調用的一般形式 171
13.2 函數調用的形式 172
13.3 被調用函數的聲明與函數原型 173
13.4 函數的嵌套調用和遞歸調用 176
13.4.1 函數的嵌套調用 176
13.4.2 函數的遞歸調用 177
13.5 變數作用域 178
13.5.1 變數作用域和生存期 178
13.5.2 局部變數和全局變數 178
13.5.3 變數存儲類別 181
13.6 編譯預處理 185
13.6.1 宏定義 186
13.6.2 文件包含處理 189
13.6.3 條件編譯 190
13.7 本章小結 191
13.8 習題 191
第14章 指針操作 192
14.1 指針與地址 192
14.2 指針和指針變數 192
14.2.1 指針變數的定義 193
14.2.2 指針變數的引用 194
14.2.3 指針的運算 196
14.3 指針和數組 199
14.3.1 數組的指針和指向數組的指針變數 200
14.3.2 指針數組和指向指針的指針 203
14.3.3 指向字元串的指針 206
14.3.4 數組名作為函數參數 207
14.4 指針和函數 211
14.4.1 函數的指針和指向函數的指針變數 211
14.4.2 用指向函數的指針作為函數參數 212
14.4.3 指針數組作為函數參數 218
14.4.4 返回指針值的函數 219
14.4.5 字元串指針作為函數參數 220
14.5 本章小結 221
14.6 習題 221
第15章 結構體 222
15.1 結構體類型定義 222
15.1.1 結構體類型的說明 222
15.1.2 結構體類型的定義 222
15.2 結構體變數的定義與引用 224
15.2.1 結構體變數的定義與初始化 224
15.2.2 結構體變數的引用 226
15.3 結構數組 229
15.3.1 結構數組的定義 229
15.3.2 結構數組的引用 230
15.4 結構體指針 232
15.4.1 結構體指針變數的定義 232
15.4.2 結構體指針變數的引用 233
15.5 鏈表 236
15.5.1 鏈表概述 236
15.5.2 單鏈表建立 238
15.5.3 單鏈表簡單操作 242
15.6 本章小結 251
15.7 習題 251
第16章 共用體 252
16.1 共用體類型定義 252
16.1.1 定義共用體 252
16.1.2 共用體的存儲 253
16.2 共用體類型變數、數組和指針變數的定義 254
16.2.1 先定義共用體,再定義共用體變數、數組及指針變數 254
16.2.2 定義共用體的同時定義共用體變數、數組及指針變數 254
16.2.3 定義共用體變數、數組及指針變數時省略共用體名 255
16.3 共用體類型變數、數組和指針變數的引用 255
16.4 共用體應用舉例 257
16.5 枚舉類型 259
16.5.1 枚舉類型的定義 259
16.5.2 枚舉類型變數的賦值和引用 260
16.6 用typedef定義數據類型 262
16.7 本章小結 266
16.8 習題 266
第17章 文件 267
17.1 文件概述 267
17.1.1 文件名 267
17.1.2 文件的類型 268
17.2 文件類型指針 268
17.3 文件的打開與關閉 270
17.3.1 文件打開函數fopen() 270
17.3.2 文件關閉函數fclose() 272
17.4 文件的讀寫操作 272
17.4.1 字元讀寫函數 272
17.4.2 字元串讀寫函數 275
17.4.3 數據塊讀寫函數 278
17.4.4 格式數據讀寫函數 281
17.5 文件的定位 282
17.5.1 文件頭定位函數rewind() 282
17.5.2 文件隨機定位函數fseek() 283
17.5.3 測試當前位置函數ftell() 284
17.6 文件的檢測 285
17.6.1 文件末尾檢測函數feof() 285
17.6.2 文件讀寫出錯檢測函數ferror() 286
17.6.3 清除文件末尾和出錯標志函數clearerr() 287
17.7 本章小結 287
17.8 習題 287
第4篇 案例實戰
第18章 學生成績管理系統設計 288
18.1 學生成績管理系統功能 288
18.2 功能模塊的描述 288
18.2.1 數據結構 288
18.2.2 main()主函數 289
18.2.3 score *creatlink()創建動態鏈表 289
18.2.4 void print(score *head)顯示學生信息 290
18.2.5 score *add(score *head,score *stu)向鏈表中添加學生數據 290
18.2.6 score *search(score *head)查詢學生成績 290
18.2.7 score *dele(score *head)刪除數據 291
18.2.8 score *sortdata(score *head)對數據進行排序 291
18.2.9 save(score *p1)保存數據 291
18.2.10 score *load(score *head)從文件中讀取數據 291
18.2.11 score *statistics(score *head)成績統計 292
18.2.12 int menu(int k)菜單 292
18.2.13 用到的頭文件和全局變數 292
18.3 程序代碼 292
18.3.1 主函數main()代碼 292
18.3.2 創建鏈表函數creatlink() 293
18.3.3 顯示學生信息函數print() 296
18.3.4 向鏈表中添加學生數據函數add() 296
18.3.5 查詢學生成績函數search 298
18.3.6 刪除數據函數dele 299
18.3.7 對數據進行排序函數sortdata() 300
18.3.8 保存數據函數save() 303
18.3.9 從文件中讀取數據函數loadfile() 303
18.3.10 成績統計函數statistics() 304
18.4 程序運行 306
18.4.1 編輯學生成績 306
18.4.2 顯示學生成績 306
18.4.3 保存學生成績信息 307
18.4.4 查詢學生的成績 307
18.4.5 添加學生的成績 307
18.4.6 刪除學生的成績 307
18.4.7 學生成績排序 308
18.4.8 從文件中讀取學生的成績 308
18.4.9 統計學生的成績 308
18.5 本章小結 308
附錄A ASCII字元集 309
附錄B 運算符的優先順序與結合性 311
附錄C C語言常用庫函數 314
⑷ 從零開始學C語言的前 言
近年來,C語言是應用最為廣泛的一種高級程序設計語言,它不僅是計算機專業學生的必修課,也是許多非計算機專業學生所青睞的技術學科。C語言程序設計是全國和各省計算機等級考試的重要考試內容。C語言功能豐富,表達能力強,使用靈活方便,程序效率高,是結構化程序設計語言。C語言具有很強的實用性,既可用來編寫應用軟體,也適合於編寫系統軟體。
本書的特點
C語言是學習其他語言的基礎,讀者只要掌握C語言,學其他語言就會很快入門。本書為了使讀者能夠從C語言的初學者成為編程高手,專門對C語言知識進行研究分析。本書的主要特點如下:
結構清晰明了。本書共18章,每章都分為若干個節,每節一個小知識點。結構層次清晰可見。
內容全面詳細。本書涵蓋了C語言中的所有知識,並將C語言各個知識點作為單獨章節進行講解,並舉出大量實例。
講解由淺入深。向讀者介紹C語言的基本理論知識、數據結構和基本的編程規則,讓讀者對C語言的基本知識及結構化程序設計思想有一個初步的認識;接著對C語言一些復雜的數結構類型如數組、函數、指針操作、結構體與共用體、文件等進行詳細的講解。
實例豐富多樣。本書所講的每一個知識點都運用充分的實例進行講解說明,便於讀者掌握。
本書的主要內容
第1章主要帶領讀者了解了計算機語言的演變和C語言的發展簡史,介紹程序設計演算法及數制、數制轉換與存儲,為以後的學習打下基礎。
第2章運用一個C語言程序設計實例講解C語言的結構特徵和書寫風格。以前的C語言參考書大部分使用的是Turbo C開發環境,本書運用Visual C++ 6.0集成開發環境,詳細介紹了Visual C++ 6.0環境的程序開發過程。
第3章講解常量、變數與標識符,第4章講解了數據結構,第5章講解了運算符及其表達式,第6章講解了輸入與輸出,這4章所講解的內容均為C語言入門的基礎知識,是學習後面幾章的前提,本書對這幾章的內容做了詳細的講解。
第7章講解了順序結構和選擇結構,第8章講解了循環結構,這兩章介紹了C語言程序設計的三種結構,它們構成了C語言程序設計的框架。這兩章還運用大量的實例講解了如何使用if-else、switch-case、while等語句來解決問題。
第9章在第7章、第8章的基礎上講解了幾種跳轉語句,如break、continue,使程序設計語句更加靈活,有利於解決更加復雜的問題。
第10章講解了數組,用於處理數據類型相同的一批數據。講解了一維數組、二維數組及它們的定義、初始化及引用,並給出了大量的實例,幫助讀者理解。
第11章講解了字元串數組,在第10章的基礎上講解了用於處理多個字元的數組。本章講解了字元數組的定義、初始化、引用、字元數組與字元串的關系及字元數組的輸入與輸出,最後講解了字元串處理函數,並舉出實例說明。
第12、13章主要介紹函數,這兩章講解了函數的定義、參數值傳遞問題、函數調用、變數的作用域,以及調用系統函數時的預編譯操作等。
第14章講解的指針操作是C語言的核心,也是難點。本章分別從指針與地址、指針和指針變數、指針和數組、指針和函數這四個方面進行介紹,並給出大量實例,幫助讀者理解。
第15章講解了結構體,第16章講解了共用體,分別介紹了幾種復雜的數據結構、它們的定義與引用,以及與其他數據結構的不同之處。
第17章講解了文件,文件也是一種數據類型,是存儲在外部存儲設備上的數據集合。本章講解了如何對外部數據進行各種操作。
第18章運用C語言來設計一個學生成績管理系統,整個系統綜合運用前幾章所學習的C語言的知識,如結構化程序設計、數組、函數、結構體等,在復習鞏固C語言的基礎知識的基礎上,進一步加深對C語言編程的理解和掌握。
適合閱讀本書的讀者
C語言的初、中級讀者。
了解C語言,但所學不全面的人員。
高等院校理科學校C語言課程的學生。
使用C語言進行畢業設計的學生。
熟悉其他語言,以此作為參考書的開發人員。
本書作者
本書主要由戴晟暉和祝明慧編寫。其他參與本書編寫的人員有昊燃、曾光、張雙、朱照華、黃永湛、孟祥嵩、張賀軍、李勇、關濤、王岩、李曉白、魏星、劉蕾。在此一並表示感謝!
⑸ 《C語言從入門到精通第四版》pdf下載在線閱讀全文,求百度網盤雲資源
《C語言從入門到精通第四版》網路網盤pdf最新全集下載:
鏈接:https://pan..com/s/111skDDHU1EhVQxSvMgGbCQ
簡介:《C語言從入門到精通(第4版)》從初學者的角度出發,以通俗易懂的語言,豐富多彩的實例,詳細介紹了使用C語言進行程序開發需要掌握的各方面知識。全書共分為17章,包括C語言概述、演算法、數據類型、運算符與表達式、常用的數據輸入/輸出函數、選擇結構程序設計、循環控制、數組、函數、指針、結構體和共用體、位運算、預處理、文件、存儲管理、網路套接字編程和學生成績管理系統。
⑹ 跪求譚浩強c語言視頻教程全集下載譚浩強主講的。謝謝!!!!
譚浩強【004】
鏈接:https://pan..com/s/1D9ABrVGilTPcfh9iAamcCQ
若資源有問題歡迎追問~
⑺ 講述 c語言發展史的那本書叫什麼藝術
C語言的祖先是BCPL語言.
1967年,劍橋大學的
Martin
Richards
對CPL語言進行了簡化,於是產生了BCPL(Basic
Combined
Programming
Language)語言.
1970年,美國貝爾實驗室的
Ken
Thompson.以BCPL語言為基礎,設計出很簡單且很接近硬體的B語言(取BCPL的首字母).並且他用B語言寫了第一個UNIX操作系統.
在1972年,美國貝爾實驗室的
D.M.Ritchie
在B語言的基礎上最終設計出了一種新的語言,他取了BCPL的第二個字母作為這種語言的名字,這就是C語言.
為了使UNIX操作系統推廣,1977年Dennis
M.Ritchie發表了不依賴於具體機器系統的C語言編譯文本《可移植的C語言編譯程序》.
⑻ 簡述c語言的發展史
C語言的祖先是BCPL語言。
1967年,劍橋大學的 Martin Richards 對CPL語言進行了簡化,於是產生了BCPL(Basic Combined Programming Language)語言。
1970年,美國貝爾實驗室的 Ken Thompson。以BCPL語言為基礎,設計出很簡單且很接近硬體的B語言(取BCPL的首字母)。並且他用B語言寫了第一個UNIX操作系統。
在1972年,美國貝爾實驗室的 D.M.Ritchie 在B語言的基礎上最終設計出了一種新的語言,他取了BCPL的第二個字母作為這種語言的名字,這就是C語言。
為了使UNIX操作系統推廣,1977年Dennis M.Ritchie發表了不依賴於具體機器系統的C語言編譯文本《可移植的C語言編譯程序》。
1978年由美國電話電報公司(AT&T)貝爾實驗室正式發表了C語言。同時由B.W.Kernighan和D.M.Ritchie合著了著名的《The C Programming Language》一書。通常簡稱為《K&R》,也有人稱之為《K&R》標准。但是,在《K&R》中並沒有定義一個完整的標准C語言,後來由美國國家標准化協會(American National Standards Institute)在此基礎上制定了一個C語言標准,於一九八三年發表。通常稱之為ANSI C。
K&R第一版在很多語言細節上也不夠精確,對於pcc這個「參照編譯器」來說,它日益顯得不切實際;K&R甚至沒有很好表達它所要描述的語言,把後續擴展扔到了一邊。最後,C在早期項目中的使用受商業和政府合同支配,這意味著一個認可的正式標準是必需的。因此(在M. D. McIlroy的催促下),ANSI於1983年夏天,在CBEMA的領導下建立了X3J11委員會,目的是產生一個C標准。X3J11在1989年末提出了一個他們的報告[ANSI 89],後來這個標准被ISO接受為ISO/IEC 9899-1990。
1990年,國際標准化組織ISO(International Organization for Standards)接受了89 ANSI C 為I SO C 的標准(ISO9899-1990)。1994年,ISO修訂了C語言的標准。
1995年,ISO對C90做了一些修訂,即「1995基準增補1(ISO/IEC/9899/AMD1:1995)」。1999年,ISO又對C語言標准進行修訂,在基本保留原來C語言特徵的基礎上,針對應該的需要,增加了一些功能,尤其是對C++中的一些功能,命名為ISO/IEC9899:1999。
2001年和2004年先後進行了兩次技術修正。
目前流行的C語言編譯系統大多是以ANSI C為基礎進行開發的,但不同版本的C編譯系統所實現的語言功能和語法規則又略有差別。
2011年12月8日,ISO正式公布C語言新的國際標准草案:ISO/IEC 9899:2011,即C11。
新的標准修提高了對C++的兼容性,並將新的特性增加到C語言中。新功能包括支持多線程, 基於ISO/IEC TR 19769:2004規范下支持Unicode,提供更多用於查詢浮點數類型特性的宏定義和靜態聲明功能。這些新特性包括:
● 對齊處理(Alignment)的標准化(包括_Alignas標志符,alignof運算符,aligned_alloc函數以及<stdalign.h>頭文件。
● _Noreturn 函數標記,類似於 gcc 的 __attribute__((noreturn))。
● _Generic 關鍵字。
● 多線程(Multithreading)支持,包括:_Thread_local存儲類型標識符,<threads.h>;頭文件,裡麵包含了線程的創建和管理函數。
● 增強的Unicode的支持。基於C Unicode技術報告ISO/IEC TR 19769:2004,增強了對Unicode的支持。包括為UTF-16/UTF-32編碼增加了char16_t和char32_t數據類型,提供了包含unicode字元串轉換函數的頭文件<uchar.h>.
● 刪除了 gets() 函數,使用一個新的更安全的函數gets_s()替代。
● 增加了邊界檢查函數介面,定義了新的安全的函數,例如 fopen_s(),strcat_s() 等等。
● 增加了更多浮點處理宏。
● 匿名結構體/聯合體支持。這個在gcc早已存在,C11將其引入標准。
● 靜態斷言(Static assertions),_Static_assert(),在解釋 #if 和 #error 之後被處理。
● 新的 fopen() 模式,(「…x」)。類似 POSIX 中的 O_CREAT|O_EXCL,在文件鎖中比較常用。
● 新增 quick_exit() 函數作為第三種終止程序的方式。當 exit()失敗時可以做最少的清理工作。
● _Atomic類型修飾符和<stdatomic.h>;頭文件。
⑼ 計算機C語言發展簡史是什麼啊
C語言發展簡史
【起源】 C 語言最早的原型是 ALGOL 60 1963 年,劍橋大學將其發展成為 CPL(Combined Programing Language)。 1967 年,劍橋大學的 Matin Richards 對 CPL 語言進行了簡化,產生了 BCPL 語言。 1970 年,美國貝爾實驗室(Bell Labs)的 Ken Thompson 將 BCPL 進行了修改,並取名叫做 B 語言,意思是提取 CPL 的精華(Boiling CPL down to its basic good features)。並用 B 語言寫了第一個 UNIX 系統。 1973 年,AT&T 貝爾實驗室的 Dennis Ritchie(D.M.RITCHIE) 在 BCPL 和 B 語言的基礎上設計出了一種新的語言,取 BCPL 中的第二個字母為名,這就是大名鼎鼎的 C 語言。隨後不久,UNIX 的內核(Kernel) 和應用程序全部用 C 語言改寫,從此,C 語言成為 UNIX 環境下使用最廣泛的主流編程語言。
【K&R C】 1978 年,Dennis Ritchie 和 Brian Kernighan 合作推出了《The C Programming Language》的第一版(按照慣例,經典著作一定有簡稱,該著作簡稱為 K&R),書末的參考指南 (Reference Manual) 一節給出了當時 C 語言的完整定義,成為那時 C 語言事實上的標准,人們稱之為 K&R C。從這一年以後,C 語言被移植到了各種機型上,並受到了廣泛的支持,使 C 語言在當時的軟體開發中幾乎一統天下。
【C89 (ANSI C)】 隨著 C 語言在多個領域的推廣、應用,一些新的特性不斷被各種編譯器實現並添加進來。於是,建立一個新的「無歧義、於具體平台無關的 C 語言定義」 成為越來越重要的事情。1983 年,ASC X3(ANSI 屬下專門負責信息技術標准化的機構,現已改名為 INCITS)成立了一個專門的技術委員會 J11(J11 是委員會編號,全稱是 X3J11),負責起草關於 C 語言的標准草案。1989 年,草案被 ANSI 正式通過成為美國國家標准,被稱為 C89 標准。
【C90 (ISO C)】 隨後,《The C Programming Language》第二版開始出版發行,書中內容根據 ANSI C(C89)進行了更新。1990 年,在 ISO/IEC JTC1/SC22/WG14 (ISO/IEC 聯合技術第 I 委員會第 22 分委員會第 14 工作組) 的努力下,ISO 批准了 ANSI C 成為國際標准。於是 ISO C(又稱為 C90) 誕生了。除了標准文檔在印刷編排上的某些細節不同外,ISO C(C90) 和 ANSI C(C89) 在技術上完全一樣。
【C95】 之後,ISO 在 1994、1996 年 分別出版了 C90 的技術勘誤文檔,更正了一些印刷錯誤,並在1995 年通過了一份 C90 的技術補充,對 C90 進行了微小的擴充,經過擴充後的 ISO C 被稱為 C95。
【C99】 1999 年,ANSI 和 ISO 又通過了最新版本的 C 語言標准和技術勘誤文檔,該標准被稱為 C99 。這基本上是目前關於 C 語言的最新、最權威的定義了。
現在,各種 C 編譯器都提供了 C89(C90) 的完整支持,對 C99 還只提供了部分支持,還有一部分提供了對某些 K&R C 風格的支持。