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 - Main 函数 C - 按值调用函数 C - 按引用调用函数 C - 嵌套函数 C - 可变参数函数 C - 用户定义函数 C - 回调函数 C - return 语句 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 - 指针 vs 数组 C - 字符指针和函数 C - NULL 指针 C - void 指针 C - 悬垂指针 C - 解引用指针 C - Near、Far 和 Huge 指针 C - 指针数组的初始化 C - 指针与多维数组

C 语言中的字符串

C - 字符串 C - 字符串数组 C - 特殊字符

C 语言的结构体和联合

C - 结构体 C - 结构体和函数 C - 结构体数组 C - 自引用结构 C - 查找表 C - 点 (.) 运算符 C - 枚举(或 enum) C - 结构填充和打包 C - 嵌套结构 C - 匿名结构和联合 C - 联合 C - Bit 位字段 C - Typedef

C 语言中的文件处理

C - 输入和输出 C - 文件 I/O(文件处理)

C 语言中的预处理器

C - 预处理器 C - #pragma 编译指示 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 语言影响的语言包括 JavaPHPJavaScriptC#Python 等等。这些语言的语法、控制结构和其他基本特性都源于 C 语言。

C 语言因其可移植性而支持不同的硬件和操作系统。通常,它被认为是一种基础语言,并影响了许多其他计算机语言。它在学术界和工业界应用最为广泛。 C 语言的相关性和广泛接受度使其对未来的程序员至关重要。

C 编程语言的历史引人入胜,在计算机科学和软件工程的发展中发挥着关键作用。

C 语言的发展历史按年份划分如下:-

C 语言历史

C 语言历史概述

C 语言历史的简要概述如下:-

C 语言编程的起源

"ALGOL"是编程语言的基础或先驱。它于 1960 年首次推出。"ALGOL"在欧洲国家广泛使用。ALGOL 将结构化编程的概念引入了开发者社区。 1967年,一种名为"BCPL"(基本组合编程语言的缩写)的新型计算机编程语言诞生。BCPL 由 Martin Richards 于 20 世纪 60 年代中期设计。

Dennis Ritchie

Dennis Ritchie 于​​ 20 世纪 70 年代初在贝尔实验室创建了 C 语言。它源于 Ken Thompson 创建的一种名为 B 的古老语言。C 语言的主要目的是构建 Unix 操作系统,这对当代计算机的发展至关重要。 BCPL、B 和 C 都属于以 Fortran 和 Algol 60 为代表的传统过程式编程语言家族。BCPL、B 和 C 在许多细节上存在语法差异,但总体而言它们相似。

C 语言编程的发展

1971 年,Dennis Ritchie 开始研究 C 语言,他和贝尔实验室的其他开发人员不断改进它。该语言既适用于系统编程,也适用于应用程序开发,因为它设计简洁、高效且可移植。

C 语言编程的标准化

Dennis Ritchie 于​​ 1971 年开始开发 C 语言,并与贝尔实验室的其他开发人员合作,不断对其进行改进。该语言的开发充分考虑了可移植性、简洁性和效率,使其既适用于应用程序编程,也适用于系统编程。

传统 C 语言之后的 C 语言版本历史

K&R C

Dennis Ritchie 和 Brian Kernighan 出版了他们的著作《C 编程语言》的第一版。这本书通常被称为 K&R (作者姓名首字母缩写),多年来一直作为 C 语言的非正式规范。它所描述的 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 引入了多项新功能,并澄清了早期版本中存在的歧义。

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。