C语言简介
C语言的历史
1972年,贝尔实验室,1972年,丹尼斯·里奇和布莱恩·柯林汉(Brian Kernighan)在B语言
的基础上重新设计了一种新语言,这种新语言取代了B语言
,所以称为C语言
。
1973年,C语言主题完成于是完全重写了Unix系统,随着Unix系统被不断完善,C语言也被不断地完善着。在开发过程中,为了让Unix系统在别的类型计算机上也可以使用,于是C语言的可移植性由此而出。C语言的源代码可以在任意架构的处理器上使用。
C语言的特点
1.语言简洁灵活
C语言是现有程序设计语言中规模最小的语言之一,C语言的关键字仅仅只有32个,控制语句也只有9个。压缩删减了不必要的一些成分。C语言的书写形式比较自由,表达方法简洁,使用一些简单的方法就可以构造出相当复杂的数据类型和程序结构。
2.可移植性高
在上面就有提到过,C语言的源代码可以在任意架构的处理器上使用。只要那种架构的处理器具有对应的C语言编译器和库,然后将C源代码编译、连接成目标二进制文件之后即可在哪种架构的处理器运行。
3.丰富的数据类型
数据类型丰富。C语言提供的数据类型包括:整型、浮点型、数组类型、指针类型、等,C99又扩充了复数浮点类型、超长整型(long long)和布尔类型(bool)等。可以用来实现各种复杂的数据结构的运算。
4.运算符丰富
C语言的运算符包含的范围非常广泛,一共有34种运算符。C语言把括号、赋值和强制类型转换等都作为运算符处理,使C程序的表达式类型和运算符类型都非常丰富,表达式类型多样化。灵活使用各种运算符可以实现在其他高级语言中难以实现的运算。
5.具有结构化的控机语句
如for语句、if...else语句和switch语句等。可以用于实现函数的逻辑控制,方便面向过程的程序设计。 用函数作为程序的模块单位,便于实现程序的模块化。C语言是完全模块化和结构化的语言。C语言对于输入和输出的处理也是通过函数调用来实现的。程序员可以自定义编制自己需要的函数库进行调用,实际上C语言程序就是由许多个函数组成的,一个函数即相当于一个程序模块,因此C语言可以很容易地进行结构化程序设计。
6.可以对物理地址直接进行操作
因为可以对物理地址进行直接操作,所以他可以实现汇编语言的大部分功能,可以直接对硬件进行操作,C语言能够直接操作硬件、管理内存、跟操作系统对话。
7.生成代码的高质量,执行程序效率高
C原来是专门为编写系统软件而设计的,许多大的软件都用C语言编写,这是因为C语言的可移植性好和硬件控制能力高,表达和运算能力强。许多以前只能用汇编语言处理的问题后来可以改用C语言来处理了。目前C的主要用途之一是编写“嵌入式系统系统程序”。由于具有上述优点,使C语言应用面十分广泛,许多应用软件也用C语言编写。
C语言的版本
在C语言的发展史上,有过许多不同的版本。
K&R C
1978年,丹尼斯·里奇(Dennis Ritchie)和布莱恩·科尔尼干(Brian Kernighan)出版了一本书,名叫《The C Programming Language》(中文译名为《C程序设计语言》)。这本书被C语言开发者们称为“K&R”,很多年来被当作C语言的非正式的标准说明。人们称这个版本的C语言为“K&R C”
。
ANSI C和ISO C
为统一C语言版本,1983年美国国家标准局(American National Standards Institute,简称ANSI)成立了一个委员会,来制定C语言标准。1989年C语言标准被批准,被称为ANSI X3.159-1989 Programming Language C
。这个版本的C语言标准通常被称为ANSI C
。又由于这个版本是89年完成制定的,因此也被称为C89
。
后来 ANSI 把这个标准提交到 ISO(国际化标准组织),1990年被 ISO 采纳为国际标准,称为ISO C
。又因为这个版本是1990年发布的,因此也被称为C90
。
ANSI C(C89)
与ISO C(C90)
内容基本相同,主要是格式组织不一样。
因为 ANSI 与 ISO 的C标准内容基本相同,所以对于C标准,可以称为ANSI C,也可以说是ISO C,或者 ANSI / ISO C。
ANSI C、ISO C、C89、C90,这些标准的内容都是一样的。
C99
C 语言标准的第一次大型修订,发生在1999年,增加了许多语言特性,比如双斜杠(//)的注释语法,这个版本称为 C99.
C11
2011年,标准化组织再一次对 C 语言进行修订,增加了 Unicode 和多线程的支持。这个版本称为 C11。
C17
C11 标准在2017年进行了修补,但发布是在2018年。新版本只是解决了 C11 的一些缺陷,没有引入任何新功能。这个版本称为 C17。
应用范围:
1.编译器,JVM,驱动
2.操作系统内核
3.各类软件开发
4.嵌入式设备开发,例:手机
5.等等等
C语言的编译
C语言是一种编译型语言,源码都是文本文件,本身无法执行。必须通过编译器,生成二进制的可执行文件,才能执行。编译器将代码从文本翻译成二进制指令的过程,就称为编译阶段,又称为“编译时”(compile time),跟运行阶段(又称为“运行时”)相区分。目前最常见的C语言编译器是自由软件基金会推出的GCC编译器
,它可以免费使用。Linux 和 Mac 系统可以直接安装 GCC,Windows 系统可以安装 MinGW。配置别的编辑器可以,博主使用的是vscode编辑器,全称(visual studio code)如果不会配置可以看另一篇文章vscode配置C语言环境
如果你没有电脑的话可以使用下面几款在线编译网页
菜鸟教程 CodingGround OnlineGDB
C语言代码示例
Hello World.c
C语言
的源代码文件都是以.c
结尾c
为.cpp
结尾。源文件就是一段纯文本文件,他的后缀.c
等只是为了帮助程序员与编译器更加容易识别,它并不会改变文本文件的内部格式。
例如:你创建一个hello world.txt编辑内容为
代码语言:javascript复制#include <stdio.h>
int main(void) {
printf("Hello Worldn");
return 0;
}
之后你再用记事本类型软件打开时,它依然是里边的内容不会被改变。编译器依然可以识别其中的代码,并进行编译生成可执行文件。