C语言起源于1969年Ken Thompson开发的B语言,后来D.M.Ritchie于1971年在B语言的基础上开发了NEW B语言,也就是我们现在说的C语言。最初,C语言的主要客户是编译器设计者,这也就是为什么“数组是从0开始而不是从1开始的原因”(其实还有许多为编译器设计者设计的特性)。1973年Ken Thompson和D.M.Ritchie将UNIX用C语言重写(原来是用汇编语言实现的),UNIX第5版诞生,从此UNIX就和C语言成了孪生兄弟。
不久,C语言越来越受欢迎。1978年Brian W.Kernighan和D.M.Ritchie以Steve Johnson编写的PCC这个C语言编译器(后来这个编译器被广泛移植)为基础,编著了《The C Programming Language》(简称TCPL),人们把这个C语言版本成为K&R C。
20世纪80年代,C语言广泛流行,动摇了BASIC的地位。许多人为其写变种,各种C版本涌出。因为C语言没有一个统一的标准,导致了它的代码无法在各种编译器上实现,C语言受到了变种松散的威胁——因此C语言必须进行标准化,1983年美国国家标准化组织(ANSI)成立了C语言工作小组,开始对C进行标准化,1989年12月ANSI C最终被ANSI委员会接纳(我们学习C语言应该学习标准化后的C语言版本)。1990年国际标准化组织(ISO)也接纳了ANSI C,并做了一些小的修改,也就形成了ISO C。1990年初,ANSI委员会重新接纳了ISO C。
因此ANSI C(ISO C)是C语言进行标准化后的产物,现在所有的编译器都应该符合ANSI C(ISO C)标准,我们学习的C语言应该也是ANSI C(ISO C)。