标签:
作为一个小白,学习的最好方法就是随时记录,好记性比不过烂笔头。所以,从今天开始就开始C语言的学习,从头开始,全部记录下来,其次是我这人记性不好,不记下来不行。
学习环境:Windows 7 64bit 旗舰版
编译器:notepad++、vs2013
学习之前先要了解C语言的发展历程、标准、特点以及组成。
C语言是一门通用计算机编程语言,应用广泛。C语言的实际目的是提供一种能已简易方式编译,处理低级存储器,产生少量机器码以及不需要任何运行环境支持便能运行的编程语言。尽管C语言提供了许多低级处理的特性,但仍然保持着良好跨平台特性,以一个标准规可写出的C语言程序可以再千万台电脑中进行编译,其中包括嵌入式处理器(单片机)等。20世纪80年代,由美国国家标准局为C语言制定了一套完整的国际标准语法,成为ANSIC,作为C语言最初的标准。
发展历史:
C语言之所以被命名为C,是因为C语言源自Ken Thompson发明的B语言,而B语言则源自BCPL语言。
1967年,剑桥大学的Martin Richhards对CPL语言进行了简化,然后就有了BCPL语言
20世纪60年代,美国AT&T公司贝尔实验室的研究员Ken Thompson想玩一个他自己编写的电子游戏Space Travel。他背着老板,找到一台空闲着的机器PDR-7,但是这台机器没有操作系统,他便自己着手编写了一个,这就是后来的UNIX。
1970年,贝尔实验室的Ken Thompson,已BCPL语言为基础,设计出简单且很接近硬件的B语言,并且用B语言写出了世界上第一个UNIX操作系统。
1971年,喜欢玩Space Travel的Dennis M.Ritchie为了能早点儿玩上游戏,加入了Thompson的开发项目,合作开发UNIX。他的主要工作是改造B语言,使其更成熟。
1972年,美国贝尔实验室的 D.M.Ritchie 在B语言的基础上最终设计出了一种新的语言,他取了BCPL的第二个字母作为这种语言的名字,这就是C语言。
1973年初,C语言的主体完成。Thompson和Ritchie迫不及待地开始用它完全重写了
UNIX。此时,编程的乐趣使他们已经完全忘记了那个"Space Travel",一门心思地投入到了UNIX和C语言的开发中。随着UNIX的发展,C语言自身也在不断地完善。直到今天,各种版本的UNIX内核和周边工具仍然使用C语言作为最主要的开发语言,其中还有不少继承Thompson和Ritchie之手的代码。
在开发中,他们还考虑把
UNIX移植到其他类型的计算机上使用。C语言强大的移植性(Portability)在此显现。机器语言和汇编语言都不具有移植性,为
x86开发的程序,不可能在Alpha,
SPARC和
ARM等机器上运行。而C语言程序则可以使用在任意架构的
处理器上,只要那种架构的处理器具有对应的C语言
编译器和库,然后将C源代码
编译、
连接成目标
二进制文件之后即可运行。
C语言继续发展,在1982年,很多有识之士和
美国国家标准协会为了使这个语言健康地发展下去,决定成立C标准委员会,建立C语言的标准。委员会由硬件厂商,编译器及其他软件工具生产商,软件设计师,顾问,学术界人士,C语言作者和应用程序员组成。1989年,
ANSI发布了第一个完整的C语言标准——ANSI X3.159—1989,简称“C89”,不过人们也习惯称其为“
ANSI C”。C89在1990年被
国际标准组织ISO(International Organization for Standardization)一字不改地采纳,ISO官方给予的名称为:ISO/IEC 9899,所以ISO/IEC9899: 1990也通常被简称为“C90”。1999年,在做了一些必要的修正和完善后,ISO发布了新的C语言标准,命名为ISO/IEC 9899:1999,简称“
C99”。
在2011年12月8日,ISO又正式发布了新的标准,称为ISO/IEC9899: 2011,简称为“
C11”。
语言标准:
K&R C
起初,C语言没有官方标准。1978年由
美国电话电报公司(AT&T)贝尔实验室正式发表了C语言。布莱恩·柯林汉(Brian Kernighan) 和 丹尼斯·里奇(Dennis Ritchie) 出版了一本书,名叫《
The C Programming Language》。这本书被 C语言开发者们称为K&R,很多年来被当作 C语言的非正式的标准说明。人们称这个版本的 C语言为K&R C。
ANSI C / C89标准
1970到80年代,C语言被广泛应用,从大型主机到小型微机,也衍生了C语言的很多不同版本。
1983年,美国国家标准协会(ANSI)成立了一个委员会X3J11,来制定 C语言标准。
1989年,美国国家标准协会(ANSI)通过了C语言标准,被称为ANSI X3.159-1989 "Programming Language C"。因为这个标准是1989年通过的,所以一般简称C89标准。有些人也简称ANSI C,因为这个标准是美国国家标准协会(ANSI)发布的。
1990年,
国际标准化组织(ISO)和
国际电工委员会(IEC)把C89标准定为C语言的国际标准,命名为ISO/IEC 9899:1990 - Programming languages -- C 。因为此标准是在1990年发布的,所以有些人把简称作C90标准。不过大多数人依然称之为C89标准,因为此标准与ANSI C89标准完全等同。
1994年,国际标准化组织(ISO)和国际电工委员会(IEC)发布了C89标准修订版,名叫ISO/IEC 9899:1990/Cor 1:1994,有些人简称为C94标准。
1995年,国际标准化组织(ISO)和国际电工委员会(IEC)再次发布了C89标准修订版,名叫ISO/IEC 9899:1990/Amd 1:1995 - C Integrity,有些人简称为C95标准。
C11标准
2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)再次发布了C语言的新标准,名叫ISO/IEC 9899:2011 - Information technology -- Programming languages -- C ,简称C11标准,原名C1X。这是C语言的第三个官方标准,也是C语言的最新标准。
语言特点:
1、高级语言:它是把
高级语言的基本结构和
语句与低级语言的实用性结合起来的工作单元。[10]
2、结构式语言:结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及
调试。C 语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。
4、代码级别的跨平台:由于标准的存在,使得几乎同样的C代码可用于多种操作系统,如Windows、
DOS、
UNIX等等;也适用于多种机型。C语言对编写需要进行硬件操作的场合,优于其它高级语言。
5、使用指针:可以直接进行靠近硬件的操作,但是C的指针操作不做保护,也给它带来了很多不安全的因素。
C++在这方面做了改进,在保留了指针操作的同时又增强了安全性,受到了一些用户的支持,但是,由于这些改进增加语言的复杂度,也为另一部分所诟病。Java则吸取了C++的教训,取消了
指针操作,也取消了C++改进中一些备受争议的地方,在安全性和适合性方面均取得良好的效果,但其本身解释在
虚拟机中运行,运行效率低于C++/C。一般而言,C,C++,java被视为同一系的语言,它们长期占据着程序使用榜的前三名。
windows环境下的C语言学习
标签:
原文地址:http://www.cnblogs.com/C-Win/p/5820732.html