⑴ 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 风格的支持。