1972 年,为了移植与开发 UNIX 操作系统,丹尼斯·里奇在贝尔电话实验室设计开发了 C 语言。
C是一种非常流行,简单且灵活的通用编程语言。 它是与机器无关的结构化编程语言,已在各种应用中广泛使用。
从操作系统(Windows和许多其他操作系统)到复杂程序(如Oracle数据库,Git,Python解释器等)等,C是最基本语言。
C是编程的基础。 如果您知道“ C”,则可以轻松掌握使用“ C”概念的其他编程语言。C 语言除了能让你了解编程的相关概念,带你走进编程的大门,还能让你明白程序的运行原理,比如,计算机的各个部件是如何交互的,程序在内存中是一种怎样的状态,操作系统和用户程序之间有着怎样的“爱恨情仇”,这些底层知识决定了你的发展高度,也决定了你的职业生涯。
如果你想要学习好C语言,你必须具有计算机存储机制的背景知识,因为这是处理C编程语言时的重要方面。
C语言的历史
编程语言的基础或父系是“ ALGOL”。 它于1960年首次推出。“ ALGOL”在欧洲国家广泛使用。 “ ALGOL”向开发人员社区介绍了结构化编程的概念。
1967年,一种新的计算机编程语言被宣布为“ BCPL”,它代表基本组合编程语言。 BCPL由Martin Richards设计和开发,特别是用于编写系统软件。 那是编程语言的时代。
仅仅三年之后,1970年,肯·汤普森(Ken Thompson)引入了一种新的编程语言,称为“ B”,其中包含“ BCPL”的多个功能。 该编程语言是在AT&T和Bell实验室使用UNIX操作系统创建的。 “ BCPL”和“ B”都是系统编程语言。
1972年,一位杰出的计算机科学家丹尼斯·里奇(Dennis Ritchie)在贝尔实验室创建了一种名为“ C”的新编程语言。 它是由“ ALGOL”,“ BCPL”和“ B”编程语言创建的。 “ C”编程语言包含这些语言的所有功能,以及更多其他使这些语言与众不同的概念。
“ C”语言是一种功能强大的编程语言,与UNIX操作系统紧密相关。 甚至大多数UNIX操作系统都以“ C”编码。 最初,“ C”编程仅限于UNIX操作系统,但随着它开始在全球范围内传播,它开始商业化,并且为跨平台系统发布了许多编译器。
如今,“ C”可以在多种操作系统和硬件平台下运行。 随着语言的发展,它发行了许多不同的版本。 有时,由于系统在旧版本下运行,因此开发人员难以跟上最新版本。 为了确保“ C”语言仍然是标准语言,美国国家标准协会(ANSI)在1989年定义了“ C”语言的商业标准。后来,国际标准组织(ISO)在1990年批准了该标准。 语言也称为“ ANSI C”。
C语言概念少,词汇少,包含了基本的编程元素,后来的很多语言(C++、Java等)都参考了C语言,说C语言是现代编程语言的开山鼻祖毫不夸张,它改变了编程世界。
C语言的应用领域
- “ C”语言广泛用于嵌入式系统。
- 它用于开发系统应用程序。
- 它被广泛用于开发桌面应用程序。
- Adobe的大多数应用程序都是使用“ C”编程语言开发的。
- 它用于开发浏览器及其扩展。 Google的Chromium使用“ C”编程语言构建。
- 它用于开发数据库。 MySQL是使用“ C”构建的最受欢迎的数据库软件。
- 它用于开发操作系统。 Apple的OS X,Microsoft的Windows和Symbian等操作系统是使用“ C”语言开发的。
- 它用于开发台式机以及手机的操作系统。
- 它用于编译器生产。
- 它被广泛用于物联网应用。
为什么学习C语言 ?
C语言被誉为“上帝语言”,它不但奠定了软件产业的基础,还创造了很多其它语言,例如:
- PHP、Python 等都是用C语言开发出来的,虽然平时做项目的时候看不到C语言的影子,但是如果想深入学习 PHP 和 Python,那就要有C语言基础了。
- C++ 和 Objective-C 干脆在C语言的基础上直接进行扩展,增加一些新功能后变成了新的语言,所以学习 C++ 和 Objective-C 之前也要先学习C语言。
C语言是许多编程语言的基础语言。“ C”作为主要语言将在学习其他编程语言时扮演重要角色。它们具有相同的概念,例如数据类型,运算符,控制语句等。 “ C”可广泛用于各种应用中。它是一种简单的语言,可以提供更快的执行速度。在当前市场上,“ C”开发人员可以很快找到很多工作。
“ C”是一种结构化的编程语言,其中的程序分为各种模块。每个模块可以分别编写,并且一起形成一个单独的“ C”程序。这种结构使测试,维护和调试过程变得容易。
“ C”包含32个关键字,各种数据类型和一组强大的内置函数,这些函数使编程非常高效。
“ C”编程的另一个特征是它可以扩展自身。 “ C”程序包含各种功能,这些功能是库的一部分。我们可以将特征和功能添加到库中。我们可以随时在程序中访问和使用这些功能。使用此功能可以简化使用复杂编程的过程。
市场上有各种编译器,可用于执行以这种语言编写的程序。
这是一种高度可移植的语言,这意味着用“ C”语言编写的程序可以在其他计算机上运行。如果我们希望在另一台计算机上使用或执行代码,则此功能至关重要。
C语言难吗?
和 Java、C++、Python、C#、JavaScript 等高级编程语言相比,C语言涉及到的编程概念少,附带的标准库小,所以整体比较简洁,容易学习,非常适合初学者入门。
编程语言的发展大概经历了以下几个阶段:
汇编语言 –> 面向过程编程 –> 面向对象编程
- 汇编语言是编程语言的拓荒年代,它非常底层,直接和计算机硬件打交道,开发效率低,学习成本高;
- C语言是面向过程的编程语言,已经脱离了计算机硬件,可以设计中等规模的程序了;
- Java、C++、Python、C#、PHP 等是面向对象的编程语言,它们在面向过程的基础上又增加了很多概念。
C语言出现的时候,已经度过了编程语言的拓荒年代,具备了现代编程语言的特性,但是这个时候还没有出现“软件危机”,人们没有动力去开发更加高级的语言,所以也没有太复杂的编程思想。
也就是说,C语言虽然是现代编程语言,但是它涉及到的概念少,词汇少,思想也简单。C语言学习成本小,初学者能够在短时间内掌握编程技能,非常适合入门。
我可以学习C语言吗?
如果你是高中学生,完全可以学习C语言。如果你的英文达到高中水平,完全可以学习。 因为C语言是由美国人开发的,有只有32个关键字。
下面是C语言中的 32 个关键字:
int | float | double | char | short | long | signed | unsigned |
if | else | switch | case | default | for | while | do |
break | continue | return | void | const | sizeof | struct | typedef |
static | extern | auto | register | enum | goto | union | volatile |
几百个函数就没几个人能记住,也不用记住,查询文档即可,每种编程语言都会提供配套的文档。常用的函数也就几十个,记住它们就足够应付日常开发了,生僻的函数查询文档即可。
C语言如何工作 ?
C是一种编译语言。 编译器是一种特殊的工具,可以编译程序并将其转换为机器可读的目标文件。 编译过程完成后,链接器将合并不同的目标文件并创建一个可执行文件来运行该程序。 下图显示了“ C”程序的执行
如今,各种编译器都可以在线使用,您可以使用任何这些编译器。 功能永远不变,大多数编译器将提供执行“ C”和“ C ++”程序所需的功能。
以下是在线可用的流行编译器列表:
- lang编译器
- MinGW编译器(适用于Windows的极简主义GNU)
- 便携式“ C”编译器
- Turbo C
C语言的架构
大多数计算机语言都是从C语言开始的。 C语言框架很简单:
#include <stdio.h> int main() { return(0); }
传统上,C语言程序以预处理器指令和原型开始。 #include语句引入头文件,例如标准输入/输出头文件stdio.h。
所有C代码中的主要函数是main(),它是程序启动时运行的第一个函数。 该函数的所有语句都用大括号或小括号括起来。 每一个 C 源程序都必须有,且只能有一个主函数(main 函数)。
C语言版本
目前最流行的C语言有以下几种:
- Microsoft C 或称 MS C
- Borland Turbo C 或称 Turbo C
- AT&T C
这些C语言版本不仅实现了 ANSI C 标准,而且在此基础上各自作了一些扩充,使之更
加方便、完美。
C语言的特点
- C 语言简洁、紧凑,使用方便、灵活。ANSI C 一共只有 32 个关键字。9 种控制语句,程序书写自由,主要用小写字母表示,压缩了一切不必要的成分;
- 运算符丰富。共有 34 种。C 把括号、赋值、逗号等都作为运算符处理。从而使 C 的运算类型极为丰富,可以实现其他高级语言难以实现的运算。
- 数据结构类型丰富。
- 具有结构化的控制语句。
- 语法限制不太严格,程序设计自由度大。
- 语言允许直接访问物理地址,能进行位(bit)操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作。因此有人把它称为中级语言。
- 生成目标代码质量高,程序执行效率高。
- 与汇编语言相比,用 C 语言写的程序可移植性好。
摘要
- “ C”由Dennis Ritchie于1972年开发。
- 这是一门强大的语言。
- 这是一种接近机器语言的低编程水平语言
- 它广泛应用于软件开发领域。
- 它是一种面向过程和结构的语言。
- 它完全支持各种操作系统和硬件平台。
- 许多编译器可用于执行用“ C”编写的程序。
- 编译器编译源文件并生成目标文件。
- 链接器将所有目标文件链接在一起,并创建一个可执行文件。
- 它具有高度的便携性。